interface DomToImageOptions {
    filter?: (node: Node) => boolean;
    bgcolor?: string;
    width?: number;
    height?: number;
    style?: {
        [key: string]: string;
    };
    quality?: number;
    imagePlaceholder?: string;
    cacheBust?: boolean;
    scale?: number;
}
interface UtilInterface {
    escape: (string: string) => string;
    parseExtension: (url: string) => string;
    mimeType: (url: string) => string;
    dataAsUrl: (content: string, type: string) => string;
    isDataUrl: (url: string) => boolean;
    canvasToBlob: (canvas: HTMLCanvasElement) => Promise<Blob>;
    resolveUrl: (url: string, baseUrl: string) => string;
    getAndEncode: (url: string) => Promise<string>;
    uid: () => string;
    delay: (ms: number) => <T>(arg: T) => Promise<T>;
    asArray: <T>(arrayLike: ArrayLike<T>) => T[];
    escapeXhtml: (string: string) => string;
    makeImage: (uri: string) => Promise<HTMLImageElement>;
    width: (node: Element) => number;
    height: (node: Element) => number;
}
interface InlinerInterface {
    inlineAll: (string: string, baseUrl?: string, get?: (url: string) => Promise<string>) => Promise<string>;
    shouldProcess: (string: string) => boolean;
    impl: {
        readUrls: (string: string) => string[];
        inline: (string: string, url: string, baseUrl?: string, get?: (url: string) => Promise<string>) => Promise<string>;
    };
}
interface FontFacesInterface {
    resolveAll: () => Promise<string>;
    impl: {
        readAll: (document: Document) => Promise<WebFont[]>;
    };
}
interface WebFont {
    resolve: () => Promise<string>;
    src: () => string;
}
interface ImagesInterface {
    inlineAll: (node: Node) => Promise<Node>;
    impl: {
        newImage: (element: HTMLImageElement) => ImageInliner;
    };
}
interface ImageInliner {
    inline: (get?: (url: string) => Promise<string>) => Promise<void>;
}
interface DomToImageInterface {
    toSvg: (node: Node, options?: DomToImageOptions) => Promise<string>;
    toPng: (node: Node, options?: DomToImageOptions) => Promise<string>;
    toJpeg: (node: Node, options?: DomToImageOptions) => Promise<string>;
    toBlob: (node: Node, options?: DomToImageOptions) => Promise<Blob>;
    toPixelData: (node: Node, options?: DomToImageOptions) => Promise<Uint8ClampedArray>;
    impl: {
        fontFaces: FontFacesInterface;
        images: ImagesInterface;
        util: UtilInterface;
        inliner: InlinerInterface;
        options: Partial<DomToImageOptions>;
    };
}
declare const domtoimage: DomToImageInterface;
export default domtoimage;
export type { DomToImageOptions, DomToImageInterface };
