import { Mirror as NodeMirror } from '../../rrweb-snapshot'; import { IMirror, serializedNodeWithId, canvasMutationData, canvasEventWithTime, inputData, scrollData, styleSheetRuleData, styleDeclarationData } from '../../types'; import { BaseRRNode as RRNode, BaseRRCDATASection, BaseRRComment, BaseRRDocument, BaseRRDocumentType, BaseRRElement, BaseRRMediaElement, BaseRRText, IRRDocument, IRRElement, IRRNode, BaseRRDialogElement } from './document'; export declare class RRDocument extends BaseRRDocument { private UNSERIALIZED_STARTING_ID; private _unserializedId; get unserializedId(): number; mirror: Mirror; scrollData: scrollData | null; constructor(mirror?: Mirror); createDocument(_namespace: string | null, _qualifiedName: string | null, _doctype?: DocumentType | null): RRDocument; createDocumentType(qualifiedName: string, publicId: string, systemId: string): BaseRRDocumentType; createElement(tagName: K): RRElementType; createElement(tagName: string): RRElement; createComment(data: string): BaseRRComment; createCDATASection(data: string): BaseRRCDATASection; createTextNode(data: string): BaseRRText; destroyTree(): void; open(): void; } export declare const RRDocumentType: typeof BaseRRDocumentType; export declare class RRElement extends BaseRRElement { inputData: inputData | null; scrollData: scrollData | null; } export declare class RRMediaElement extends BaseRRMediaElement { } export declare class RRDialogElement extends BaseRRDialogElement { } export declare class RRCanvasElement extends RRElement implements IRRElement { rr_dataURL: string | null; canvasMutations: { event: canvasEventWithTime; mutation: canvasMutationData; }[]; getContext(): RenderingContext | null; } export declare class RRStyleElement extends RRElement { rules: (styleSheetRuleData | styleDeclarationData)[]; } export declare class RRIFrameElement extends RRElement { contentDocument: RRDocument; constructor(upperTagName: string, mirror: Mirror); } export declare const RRText: typeof BaseRRText; export type RRText = typeof RRText; export declare const RRComment: typeof BaseRRComment; export type RRComment = typeof RRComment; export declare const RRCDATASection: typeof BaseRRCDATASection; export type RRCDATASection = typeof RRCDATASection; interface RRElementTagNameMap { audio: RRMediaElement; canvas: RRCanvasElement; iframe: RRIFrameElement; style: RRStyleElement; video: RRMediaElement; } type RRElementType = K extends keyof RRElementTagNameMap ? RRElementTagNameMap[K] : RRElement; export declare function buildFromNode(node: Node, rrdom: IRRDocument, domMirror: NodeMirror, parentRRNode?: IRRNode | null): IRRNode | null; export declare function buildFromDom(dom: Document, domMirror?: NodeMirror, rrdom?: IRRDocument): IRRDocument; export declare function createMirror(): Mirror; export declare class Mirror implements IMirror { private idNodeMap; private nodeMetaMap; getId(n: RRNode | undefined | null): number; getNode(id: number): RRNode | null; getIds(): number[]; getMeta(n: RRNode): serializedNodeWithId | null; removeNodeFromMap(n: RRNode, _permanent?: boolean): void; has(id: number): boolean; hasNode(node: RRNode): boolean; add(n: RRNode, meta: serializedNodeWithId): void; replace(id: number, n: RRNode): void; reset(): void; } export declare function getDefaultSN(node: IRRNode, id: number): serializedNodeWithId; export declare function printRRDom(rootNode: IRRNode, mirror: IMirror): string; export { RRNode }; export { diff, createOrGetNode, type ReplayerHandler } from './diff'; export * from './document';