export type DOM = import('./dom.js').DOM; export type DetailsRenderer = import('./details-renderer.js').DetailsRenderer; export type CRCSegment = { node: LH.Audit.Details.SimpleCriticalRequestNode[string]; isLastChild: boolean; hasChildren: boolean; startTime: number; transferSize: number; treeMarkers: boolean[]; }; /** @typedef {import('./dom.js').DOM} DOM */ /** @typedef {import('./details-renderer.js').DetailsRenderer} DetailsRenderer */ /** * @typedef CRCSegment * @property {LH.Audit.Details.SimpleCriticalRequestNode[string]} node * @property {boolean} isLastChild * @property {boolean} hasChildren * @property {number} startTime * @property {number} transferSize * @property {boolean[]} treeMarkers */ export class CriticalRequestChainRenderer { /** * Create render context for critical-request-chain tree display. * @param {LH.Audit.Details.SimpleCriticalRequestNode} tree * @return {{tree: LH.Audit.Details.SimpleCriticalRequestNode, startTime: number, transferSize: number}} */ static initTree(tree: LH.Audit.Details.SimpleCriticalRequestNode): { tree: LH.Audit.Details.SimpleCriticalRequestNode; startTime: number; transferSize: number; }; /** * Helper to create context for each critical-request-chain node based on its * parent. Calculates if this node is the last child, whether it has any * children itself and what the tree looks like all the way back up to the root, * so the tree markers can be drawn correctly. * @param {LH.Audit.Details.SimpleCriticalRequestNode} parent * @param {string} id * @param {number} startTime * @param {number} transferSize * @param {Array=} treeMarkers * @param {boolean=} parentIsLastChild * @return {CRCSegment} */ static createSegment(parent: LH.Audit.Details.SimpleCriticalRequestNode, id: string, startTime: number, transferSize: number, treeMarkers?: Array | undefined, parentIsLastChild?: boolean | undefined): CRCSegment; /** * Creates the DOM for a tree segment. * @param {DOM} dom * @param {CRCSegment} segment * @param {DetailsRenderer} detailsRenderer * @return {Node} */ static createChainNode(dom: DOM, segment: CRCSegment, detailsRenderer: DetailsRenderer): Node; /** * Recursively builds a tree from segments. * @param {DOM} dom * @param {DocumentFragment} tmpl * @param {CRCSegment} segment * @param {Element} elem Parent element. * @param {LH.Audit.Details.CriticalRequestChain} details * @param {DetailsRenderer} detailsRenderer */ static buildTree(dom: DOM, tmpl: DocumentFragment, segment: CRCSegment, elem: Element, details: LH.Audit.Details.CriticalRequestChain, detailsRenderer: DetailsRenderer): void; /** * @param {DOM} dom * @param {LH.Audit.Details.CriticalRequestChain} details * @param {DetailsRenderer} detailsRenderer * @return {Element} */ static render(dom: DOM, details: LH.Audit.Details.CriticalRequestChain, detailsRenderer: DetailsRenderer): Element; } //# sourceMappingURL=crc-details-renderer.d.ts.map