import { AbstractTTSClient } from "../core/abstract-tts";
import type { SpeakOptions, TTSCredentials, UnifiedVoice } from "../types";
export interface MistralTTSOptions extends SpeakOptions {
    model?: string;
    voice?: string;
    responseFormat?: "mp3" | "wav" | "opus";
    providerOptions?: Record<string, unknown>;
}
export interface MistralTTSCredentials extends TTSCredentials {
    apiKey?: string;
    baseURL?: string;
    model?: string;
    properties?: Record<string, unknown> | string;
    propertiesJson?: string;
}
export declare class MistralTTSClient extends AbstractTTSClient {
    private apiKey;
    private baseUrl;
    private model;
    private responseFormat;
    static readonly VOICES: {
        id: string;
        name: string;
        gender: "Unknown";
        language: string;
    }[];
    constructor(credentials?: MistralTTSCredentials);
    private applyCredentialProperties;
    private prepareText;
    setModel(model: string): void;
    setVoice(voiceId: string): void;
    getProperty(property: string): any;
    setProperty(property: string, value: any): void;
    checkCredentials(): Promise<boolean>;
    protected getRequiredCredentials(): string[];
    protected _getVoices(): Promise<any[]>;
    protected _mapVoicesToUnified(rawVoices: any[]): Promise<UnifiedVoice[]>;
    synthToBytes(text: string, options?: MistralTTSOptions): Promise<Uint8Array>;
    synthToBytestream(text: string, options?: MistralTTSOptions): Promise<{
        audioStream: ReadableStream<Uint8Array>;
        wordBoundaries: Array<{
            text: string;
            offset: number;
            duration: number;
        }>;
    }>;
    private parseSseBase64Stream;
}
