import { Template } from "@bluepic/types";
export declare const cloudflarePagesHostname = "sandbox.bluepic.io";
export declare function getBluepicSandboxLiveUrl(bxCoreVersion: string, hostname?: string, assetProxy?: string): string;
export declare function getTemplatePreviewUrl(templateId: string, options: {
    apiBaseUrl: string;
    env: 'dev' | 'prod';
}): string;
export declare function optimizePreviewUrl(url: string, width?: number, height?: number, variant?: 'public' | 'avatar'): string;
export declare class EmbeddedController extends EventTarget {
    iframe: HTMLIFrameElement;
    alive: boolean;
    ready: boolean;
    sessionId: string | null;
    $data: {
        [k: string]: any;
    };
    constructor(iframe: HTMLIFrameElement, serialPromise?: Promise<Template.Serial | undefined>, maxRetries?: number);
    destroy(): void;
    ping(timeout?: number): Promise<unknown>;
    getSessionId(): Promise<string>;
    private messageIsSession;
    private messageIsEvent;
    initListener(): void;
    apply(name: string, ...args: any[]): void;
    get(name: string): Promise<unknown>;
    set(name: string, value: string): boolean;
    evaluate(func: Function, ...args: string[]): Promise<unknown>;
    busy: boolean;
    waiting: boolean;
    lastDataSet: {
        [k: string]: any;
    };
    setData(data: {
        [k: string]: any;
    }, thenHook?: () => void): Promise<unknown>;
    transform(scale: number, x: number, y: number, origin: {
        x: string;
        y: string;
    }): void;
}
