import type { ApiProvider, ProviderResponse } from '../../types';
type ElevenLabsOptions = {
    voiceId?: string;
    modelId?: string;
    outputFormat?: string;
    stability?: number;
    similarityBoost?: number;
    style?: number;
    useSpeakerBoost?: boolean;
};
export declare class ElevenLabsTtsProvider implements ApiProvider {
    modelName: string;
    config: ElevenLabsOptions;
    private elevenlabs;
    constructor(modelName?: string, options?: {
        id?: string;
        config?: ElevenLabsOptions;
    });
    private initializeClient;
    id(): string;
    toString(): string;
    getApiKey(): string | undefined;
    /**
     * Get all available voices from ElevenLabs API using SDK
     */
    getAllVoices(): Promise<any[]>;
    /**
     * Fetch voices directly from ElevenLabs REST API
     * @param options - Optional filter parameters
     * @param options.language - Language code (e.g., 'es', 'en', 'fr')
     * @param options.gender - Gender filter (e.g., 'female', 'male')
     * @param options.category - Category filter (e.g., 'conversational', 'narrative')
     * @returns Array of voice objects
     */
    fetchVoicesFromAPI(options?: {
        language?: string;
        gender?: string;
        category?: string;
    }): Promise<any[]>;
    /**
     * Get voice ID by language using direct API call
     * @param language - Language code (e.g., 'es', 'en', 'fr') or language name
     * @param options - Optional filters
     * @param options.gender - Gender filter (e.g., 'female', 'male')
     * @param options.category - Category filter (e.g., 'conversational', 'narrative')
     * @returns Voice ID or null if not found
     */
    getVoiceIdByLanguageAPI(language: string, options?: {
        gender?: string;
        category?: string;
    }): Promise<string | null>;
    /**
     * Get voice ID for a specific language
     * @param language - Language code (e.g., 'en', 'es', 'fr', 'hi', 'de')
     * @returns Voice ID or null if not found
     */
    getVoiceIdByLanguage(language: string): Promise<string | null>;
    /**
     * Get voice ID for a specific accent
     * @param accent - Accent name (e.g., 'indian', 'american', 'british') or object with value property
     * @returns Voice ID or null if not found
     */
    getVoiceIdByAccent(accent: any): Promise<string | null>;
    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>;
}
export {};
//# sourceMappingURL=elevenlabs.d.ts.map