export type AudioItemStatus = 'pending' | 'processing' | 'completed' | 'failed';
export interface IAudioWord {
    word: string;
    start: number;
    end: number;
    speaker?: string;
}
export interface IAudioSegment {
    start: number;
    end: number;
    text: string;
    speaker?: string;
}
export interface IAudioSpeaker {
    id: string;
    label?: string;
}
export interface IAudioTranscriptionResult {
    text: string;
    language?: string;
    durationSeconds?: number;
    segments?: IAudioSegment[];
    words?: IAudioWord[];
    speakers?: IAudioSpeaker[];
}
export interface ITranscriptionModelInfo {
    id: string;
    provider: 'openai' | 'gemini' | 'ivrit-ai';
    labelHe: string;
    labelEn: string;
    descriptionHe: string;
    descriptionEn: string;
    supportsWordTimestamps: boolean;
    supportsDiarization?: boolean;
    maxFileSizeMB: number;
    isDefault?: boolean;
}
export interface ITranscriptionProvider {
    readonly modelId: string;
    transcribe(params: {
        buffer: Buffer;
        mimeType: string;
        originalName: string;
        language?: string;
    }): Promise<IAudioTranscriptionResult>;
}
