import { Bounds } from '../css/layout/bounds'; export interface CloneOptions { id: string; ignoreElements?: (element: Element) => boolean; onclone?: (document: Document) => void; } export declare type CloneConfigurations = CloneOptions & { inlineImages: boolean; copyStyles: boolean; elements?: any[]; }; export declare class DocumentCloner3 { private readonly scrolledElements; private readonly options; private readonly referenceElement; private readonly referenceElements; private readonly documentElement; private readonly counters; private quoteDepth; clonedReferenceElement?: HTMLElement; clonedReferenceElements: any[]; constructor(element: HTMLElement, options: CloneConfigurations); toIFrame(ownerDocument: Document, windowSize: Bounds): Promise; createElementClone(node: HTMLElement): HTMLElement; createStyleClone(node: HTMLStyleElement): HTMLStyleElement; createCanvasClone(canvas: HTMLCanvasElement): HTMLImageElement | HTMLCanvasElement; cloneNode(node: Node): Node; resolvePseudoContent(node: Element, clone: Element, style: CSSStyleDeclaration, pseudoElt: PseudoElementType): HTMLElement | void; static destroy(container: HTMLIFrameElement): boolean; } declare enum PseudoElementType { BEFORE = 0, AFTER = 1 } export declare const copyCSSStyles: (style: CSSStyleDeclaration, target: HTMLElement) => HTMLElement; export {};