import { Template } from '@bluepic/types';
export type BxTemplateOptions = {
    cloudflarePagesHostname: string;
    embedApiBaseUrl: string;
    useBoilerplate: boolean;
    env: 'dev' | 'prod';
    config: {
        fonts?: {
            name: string;
            src: string;
        }[];
        webgl?: boolean;
        resolution?: number;
    };
};
export declare function getTemplateSerialUrl(templateId: string, options: {
    embedApiBaseUrl: string;
    env: 'dev' | 'prod';
}): string;
export declare function getTemplatePreviewUrl(templateId: string, options: {
    embedApiBaseUrl: string;
    env: 'dev' | 'prod';
}): string;
export declare function getTemplateLiveUrl(id: string, knownBxCoreVersion: string | undefined, options: BxTemplateOptions): string;
export declare function optimizePreviewUrl(url: string, width?: number, height?: number, variant?: 'public' | 'avatar'): string | undefined;
export default 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>;
    setData(data: {
        [k: string]: any;
    }): Promise<unknown>;
    transform(scale: number, x: number, y: number, origin: {
        x: string;
        y: string;
    }): void;
}
//# sourceMappingURL=bluepicEmbed.d.ts.map