import type { ApiProvider, ProviderResponse } from '../../types';
type AzureSpeechOptions = {
    language?: string;
    voiceName?: string;
    outputFormat?: string;
    pitch?: string;
    rate?: string;
    volume?: string;
};
export declare class AzureSpeechTtsProvider implements ApiProvider {
    modelName: string;
    config: AzureSpeechOptions;
    private speechConfig;
    constructor(modelName?: string, options?: {
        id?: string;
        config?: AzureSpeechOptions;
    });
    private initializeSpeechConfig;
    id(): string;
    toString(): string;
    getApiKey(): string | undefined;
    getRegion(): string | undefined;
    /**
     * Get voice name based on language and gender
     * Mapping of common languages to Azure Neural voices
     */
    getVoiceNameByLanguage(language?: string, gender?: 'male' | 'female'): string;
    /**
     * Map common language values to Azure language codes
     */
    mapLanguageToAzureCode(language: string): string;
    callApi(text: string): Promise<ProviderResponse>;
    /**
     * Convert text to speech and return as Buffer
     * This is a convenience method that wraps callApi
     */
    textToSpeechBuffer(text: string): Promise<Buffer | null>;
    /**
     * Generate voice file and return file path
     * @param text - Text to convert to speech
     * @param columnName - Column name for file naming
     * @param resultCounter - Counter for unique file naming
     * @param audioFolder - Folder to save audio files
     * @returns File path of generated audio
     */
    generateVoiceFile(text: string, columnName: string, resultCounter: number, audioFolder: string): Promise<string>;
    /**
     * Update configuration for language and voice
     */
    updateConfig(options: {
        language?: string;
        voiceName?: string;
        gender?: 'male' | 'female';
    }): void;
}
export {};
//# sourceMappingURL=azureSpeech.d.ts.map