import { ReactNode } from 'react';
import { Template, Size, UIProps, UIOptions, PluginRegistry, PreviewProps } from '@pdfme/common';
export declare abstract class BaseUIClass {
    protected domContainer: HTMLElement | null;
    protected template: Template;
    protected size: Size;
    private reactRoot;
    private lang;
    private font;
    private pluginsRegistry;
    private options;
    private readonly setSize;
    resizeObserver: ResizeObserver;
    constructor(props: UIProps);
    protected getLang(): "en" | "zh" | "ja" | "ko" | "ar" | "th" | "pl" | "it" | "de" | "es" | "fr";
    protected getFont(): Record<string, {
        data: string | ArrayBuffer | Uint8Array<ArrayBuffer>;
        fallback?: boolean | undefined;
        subset?: boolean | undefined;
    }>;
    protected getPluginsRegistry(): PluginRegistry;
    getOptions(): UIOptions;
    getTemplate(): {
        [x: string]: unknown;
        schemas: {
            [x: string]: unknown;
            name: string;
            type: string;
            position: {
                x: number;
                y: number;
            };
            width: number;
            height: number;
            content?: string | undefined;
            rotate?: number | undefined;
            opacity?: number | undefined;
            readOnly?: boolean | undefined;
            required?: boolean | undefined;
            __splitRange?: {
                unit: string;
                start: number;
                end?: number | undefined;
            } | undefined;
            __isSplit?: boolean | undefined;
        }[][];
        basePdf: string | ArrayBuffer | Uint8Array<ArrayBuffer> | {
            width: number;
            height: number;
            padding: [number, number, number, number];
            staticSchema?: {
                [x: string]: unknown;
                name: string;
                type: string;
                position: {
                    x: number;
                    y: number;
                };
                width: number;
                height: number;
                content?: string | undefined;
                rotate?: number | undefined;
                opacity?: number | undefined;
                readOnly?: boolean | undefined;
                required?: boolean | undefined;
                __splitRange?: {
                    unit: string;
                    start: number;
                    end?: number | undefined;
                } | undefined;
                __isSplit?: boolean | undefined;
            }[] | undefined;
        };
        pdfmeVersion?: string | undefined;
    };
    updateTemplate(template: Template): void;
    updateOptions(options: UIOptions): void;
    destroy(): void;
    protected mount(node: ReactNode): void;
    protected abstract render(): void;
}
export declare abstract class PreviewUI extends BaseUIClass {
    protected inputs: {
        [key: string]: string;
    }[];
    constructor(props: PreviewProps);
    getInputs(): {
        [key: string]: string;
    }[];
    setInputs(inputs: {
        [key: string]: string;
    }[]): void;
    protected abstract render(): void;
}
