import { Container, ICanvas, DisplayObject } from 'pixi.js';
import PrintSprite from './PrintSprite';
interface IBorder {
    dash?: Array<number>;
    width?: number;
    color?: string;
}
interface IPrintEditor {
    width?: number;
    height?: number;
    MARGIN_BOARD?: number;
    isShowBorder?: boolean;
    border?: IBorder;
    isUseViewport?: boolean;
}
export default class PrintEditor extends Container {
    #private;
    constructor(props?: IPrintEditor);
    props: any;
    root: Container | undefined;
    drawArea: Container | undefined;
    holderDrawArea: Container | undefined;
    contentBoard: Container | undefined;
    background: any;
    get priceByArea(): number;
    configSizeBoard({ width, height }: {
        width: number;
        height: number;
    }): void;
    hide(): Promise<void>;
    show(): Promise<void>;
    setupBackground({ url }: {
        url?: string | undefined;
    }): Promise<unknown>;
    changeBackground(url: string): void;
    changeData(data: any): void;
    setupArea(): void;
    addToBoard(obj: DisplayObject): void;
    onRemove(obj: any): void;
    updateObjectMatrix(obj: any): void;
    calculatePriceByArea(x: number): number;
    drawBorderDash(color?: any): void;
    showBorder(): void;
    hideBorder(): void;
    changeColorBorder(color: string): void;
    setupRuler(): void;
    showRuler(): void;
    hideRuler(): void;
    setupViewport(): void;
    zoomFit(): void;
    zoomOut(): void;
    duplicateById(id: string, { deltaX, deltaY }?: {
        deltaX?: number;
        deltaY?: number;
    }): Promise<import("../../extras/print-editor").PrintShape | PrintSprite | import("../../extras/print-editor").PrintText | import("../../extras/print-editor").PrintSvg | import("../../extras/print-editor").PrintTextMesh | null | undefined>;
    resizeViewport(): void;
    toJSON(): {
        price: number;
        list: any[] | undefined;
    };
    toJsonWithoutText(): Promise<{
        price: number;
        list: any[];
    } | undefined>;
    clearContent(): void;
    addItemByJson(data: string | any): Promise<import("../../extras/print-editor").PrintShape | PrintSprite | import("../../extras/print-editor").PrintText | import("../../extras/print-editor").PrintSvg | import("../../extras/print-editor").PrintTextMesh | null | undefined>;
    fromJSON(data: string | any): Promise<void>;
    prepairToExport(): Promise<void>;
    prepairToWebView(): Promise<void>;
    exportToImage(): Promise<HTMLImageElement | null>;
    exportToCanvas(): Promise<ICanvas | null>;
    exportToBlob(): Promise<any | undefined>;
    exportToShareBlob(opt: {
        width?: number;
        height?: number;
    }): Promise<any | undefined>;
}
export {};
