import { SSEManager } from '../utils/sse-manager.js';
export interface SyncOptions {
    fileData?: string;
    filePath?: string;
    filename: string;
    mimeType: string;
    language: string;
    format: 'srt' | 'vtt' | 'ttml' | 'json';
    apiKey?: string;
    transcriptS3Key?: string;
    synchronous?: boolean;
    webhook_url?: string;
}
export interface SyncProgress {
    requestId: string;
    webhook_url?: string;
    status: 'uploading' | 'processing' | 'downloading' | 'completed' | 'error';
    progress?: number;
    message?: string;
    result?: {
        format: string;
        content: string;
    };
    error?: string;
}
export interface SyncResult {
    requestId: string;
    processingPromise?: Promise<{
        success: boolean;
        requestId: string;
        format: string;
        content?: string;
        filename: string;
        language: string;
        message: string;
        error?: string;
    }>;
    result?: {
        success: boolean;
        requestId: string;
        format: string;
        content?: string;
        filename: string;
        language: string;
        message: string;
        error?: string;
    };
}
export declare class SyncService {
    private sseManager;
    private syncProgress;
    private serverApiKey?;
    constructor(sseManager: SSEManager, serverApiKey?: string);
    runSync(options: SyncOptions): Promise<SyncResult>;
    private processSync;
    private updateProgress;
    getActiveSync(requestId: string): SyncProgress | null;
    getAllActiveSyncs(): SyncProgress[];
    getAvailableLanguages(): Promise<string[]>;
}
//# sourceMappingURL=sync.d.ts.map