export type BytedanceVideoTaskInput = Record<string, unknown>;
export interface BytedanceVideoTaskCreateResponse {
    id: string;
}
export type BytedanceVideoTaskStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'expired';
export interface BytedanceVideoTaskResponse {
    id: string;
    status: BytedanceVideoTaskStatus;
    content?: {
        video_url?: string;
        last_frame_url?: string;
    };
    error?: {
        code?: string;
        message?: string;
    };
}
export interface BytedanceClient {
    createTask: (input: BytedanceVideoTaskInput, options?: {
        abortSignal?: AbortSignal;
    }) => Promise<BytedanceVideoTaskCreateResponse>;
    getTask: (taskId: string, options?: {
        abortSignal?: AbortSignal;
    }) => Promise<BytedanceVideoTaskResponse>;
    generateVideo: (input: BytedanceVideoTaskInput, options?: {
        abortSignal?: AbortSignal;
    }) => Promise<BytedanceVideoTaskResponse>;
}
export declare function createBytedanceClient(proxyUrl: string, headers?: Record<string, string>): BytedanceClient;
