import { Template, Render } from '@bluepic/types';
import { type Ref } from 'vue';
import { z } from '@hono/zod-openapi';
import BluepicLiveTemplate from '../components/BluepicLiveTemplate.vue';
export type LocalRenderOpts = {
    width: number;
    height: number;
    frames: Template.Serial['frames'];
    quality?: number;
    format: 'image/svg+xml' | 'image/png' | 'image/jpeg' | 'application/pdf' | 'application/vnd.adobe.indesign-idml-package';
    svgOptions: {
        vectorizeAllTexts: boolean;
    };
    idmlOptions: {
        vectorizeAllTexts: boolean;
        keepGroupTransforms: boolean;
        rasterizeAllMasks: boolean;
        keepFontRemoteUrls: boolean;
    };
    fileBasename: string;
    watermark?: string;
};
export declare function renderRemote(embedApiBaseUrl: string, cloudflarePagesHostname: string, env: 'prod' | 'dev', embedProjectId: number, templateId: string, data: {
    [k: string]: unknown;
}, width: number, height: number, format: z.infer<typeof Render.formatSchema>, quality: number, frames: {
    x: number;
    y: number;
}, authorization?: string, password?: string): Promise<Blob>;
export declare function getSessionState(templateId: string, data: {
    [k: string]: unknown;
}, format: Exclude<z.infer<typeof Render.formatSchema>, 'mp4'>, width: number, height: number, quality: number, frames?: {
    x: number;
    y: number;
}): string;
export declare function useRenderer(embedApiBaseUrl: string, cloudflarePagesHostname: string, env: 'prod' | 'dev', bluepicLiveTemplateRef: Ref<InstanceType<typeof BluepicLiveTemplate> | undefined>, serialRef: Ref<Template.Serial | undefined>, embedProjectId: Ref<number | undefined>, templateId: Ref<string | undefined>, bearerToken: Ref<string | undefined>, password: Ref<string | undefined>, data: Ref<{
    [k: string]: unknown;
}>): {
    renderFiles: {
        [fileName: string]: Blob;
    } | undefined;
    render: (format: Exclude<z.infer<typeof Render.formatSchema>, "mp4">, baseName?: string, watermark?: string) => Promise<{
        files: {
            [fileName: string]: Blob;
        } | undefined;
        creditsConsumed: number;
    }>;
    renderVideo: (format: "mp4", duration: number, baseName?: string) => Promise<{
        files: string[];
        creditsConsumed: number;
    }>;
    videoFiles: Ref<{
        name: string;
        url: string;
    }[] | undefined, {
        name: string;
        url: string;
    }[] | undefined>;
    videoRendering: Ref<boolean, boolean>;
    videoProgress: Ref<Render.RenderProgressEvent | undefined, Render.RenderProgressEvent | undefined>;
};
export declare function downloadFiles(fileUrls: (string | Blob)[], baseName: string): Promise<void>;
