import { type APIConnectOptions, type AudioBuffer, stt } from '@livekit/agents';
export type STTLanguages = 'ar' | 'cs' | 'da' | 'nl' | 'en' | 'fil' | 'fr' | 'de' | 'hi' | 'id' | 'it' | 'ja' | 'ko' | 'mk' | 'ms' | 'fa' | 'pl' | 'pt' | 'ro' | 'ru' | 'es' | 'sv' | 'th' | 'tr' | 'vi';
export interface STTOptions {
    apiKey?: string;
    interimResults: boolean;
    sampleRate: number;
    enableDiarization: boolean;
    language: STTLanguages | string;
    /**
     * Silence duration in milliseconds before an utterance-final event is fired.
     * xAI's default is 10ms, but we default to 100ms for better compatibility with LK EOT models.
     */
    endpointing: number;
    /**
     * Voice-activity detection threshold, range 0.0-1.0. Lower values capture quieter/noisier
     * speech. When unset, xAI's websocket default (0.08) applies.
     */
    vadThreshold?: number;
    /**
     * Confidence threshold (0.0-1.0) for xAI's ML end-of-turn ("Smart Turn") prediction at
     * silence boundaries. When unset, Smart Turn is left at xAI's default behavior.
     */
    smartTurn?: number;
    /**
     * Maximum silence in milliseconds (1-5000) before an utterance-final event is forced even when
     * Smart Turn predicts the speaker is continuing.
     */
    smartTurnTimeout?: number;
    /**
     * Key terms/phrases (max 100, 50 chars each) to bias transcription accuracy toward.
     */
    keyterm?: string[];
}
export declare class STT extends stt.STT {
    #private;
    label: string;
    get provider(): string;
    constructor(opts?: Partial<STTOptions>);
    _recognize(buffer: AudioBuffer): Promise<stt.SpeechEvent>;
    stream(options?: {
        connOptions?: APIConnectOptions;
    }): SpeechStream;
    updateOptions(opts: Partial<STTOptions>): void;
    close(): Promise<void>;
}
export declare class SpeechStream extends stt.SpeechStream {
    #private;
    label: string;
    constructor(stt: STT, opts: STTOptions, apiKey: string, connOptions?: APIConnectOptions);
    updateOptions(opts: Partial<STTOptions>): void;
    protected run(): Promise<void>;
}
//# sourceMappingURL=stt.d.ts.map