/// <reference types="node" resolution-mode="require"/>
import { Readable } from 'node:stream';
import { z } from 'zod';
import { elevenlabs } from '@jackdbd/zod-schemas';
export declare const audioExtension: (outputFormat: elevenlabs.OutputFormat) => "mp3" | "pcm" | "flac";
export declare const DEFAULT_VOICE_SETTINGS: {
    similarity_boost: number;
    stability: number;
    style: number;
    use_speaker_boost: boolean;
};
export declare const synthesis_config: z.ZodObject<{
    /**
     * Models supported by the ElevenLabs Text-to-Speech API.
     *
     * @see https://elevenlabs.io/docs/api-reference/get-models
     */
    modelId: z.ZodUnion<[z.ZodLiteral<"eleven_english_sts_v2">, z.ZodLiteral<"eleven_monolingual_v1">, z.ZodLiteral<"eleven_multilingual_v1">, z.ZodLiteral<"eleven_multilingual_v2">, z.ZodLiteral<"eleven_turbo_v2">]>;
    outputFormat: z.ZodUnion<[z.ZodLiteral<"mp3_44100_64">, z.ZodLiteral<"mp3_44100_96">, z.ZodLiteral<"mp3_44100_128">, z.ZodLiteral<"mp3_44100_192">, z.ZodLiteral<"pcm_16000">, z.ZodLiteral<"pcm_22050">, z.ZodLiteral<"pcm_24000">, z.ZodLiteral<"pcm_44100">, z.ZodLiteral<"ulaw_8000">]>;
    /**
     * Voices supported by the ElevenLabs Text-to-Speech API.
     *
     * @see https://elevenlabs.io/docs/api-reference/get-voices
     */
    voiceId: z.ZodString;
    voiceSettings: z.ZodDefault<z.ZodAny>;
}, "strip", z.ZodTypeAny, {
    modelId: "eleven_english_sts_v2" | "eleven_monolingual_v1" | "eleven_multilingual_v1" | "eleven_multilingual_v2" | "eleven_turbo_v2";
    outputFormat: "mp3_44100_64" | "mp3_44100_96" | "mp3_44100_128" | "mp3_44100_192" | "pcm_16000" | "pcm_22050" | "pcm_24000" | "pcm_44100" | "ulaw_8000";
    voiceId: string;
    voiceSettings?: any;
}, {
    modelId: "eleven_english_sts_v2" | "eleven_monolingual_v1" | "eleven_multilingual_v1" | "eleven_multilingual_v2" | "eleven_turbo_v2";
    outputFormat: "mp3_44100_64" | "mp3_44100_96" | "mp3_44100_128" | "mp3_44100_192" | "pcm_16000" | "pcm_22050" | "pcm_24000" | "pcm_44100" | "ulaw_8000";
    voiceId: string;
    voiceSettings?: any;
}>;
export type SynthesisConfig = z.input<typeof synthesis_config>;
export declare const synthesize_config: z.ZodObject<{
    /**
     * Text to synthesize into speech using the ElevenLabs Text-to-Speech API.
     *
     * @remarks
     * Character limit for the ElevenLabs Text-to-Speech API:
     * - 2500 for unsubscribed users
     * - 5000 for subscribed users
     * @see [elevenlabs.io - Pricing](https://elevenlabs.io/pricing)
     */
    text: z.ZodString;
}, "strip", z.ZodTypeAny, {
    text: string;
}, {
    text: string;
}>;
/**
 * Configuration for the ElevenLabs Text-to-Speech API.
 *
 * @see [elevenlabs.io - Text to speech API Reference](https://elevenlabs.io/docs/api-reference/text-to-speech)
 */
export type SynthesizeConfig = z.input<typeof synthesize_config>;
/**
 * Synthesizes text into speech using the ElevenLabs Text-to-Speech API.
 *
 * @public
 */
export declare const synthesize: (apiKey: string, cfg: SynthesisConfig, text: string) => Promise<{
    error: Error;
    value?: undefined;
} | {
    value: Readable;
    error?: undefined;
}>;
export declare const auth_options: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodDefault<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    apiKey?: string | undefined;
}, {
    apiKey?: string | undefined;
}>;
export type AuthOptions = z.input<typeof auth_options>;
export declare const client_config: z.ZodObject<z.objectUtil.extendShape<{
    apiKey: z.ZodOptional<z.ZodDefault<z.ZodString>>;
}, {
    /**
     * Models supported by the ElevenLabs Text-to-Speech API.
     *
     * @see https://elevenlabs.io/docs/api-reference/get-models
     */
    modelId: z.ZodUnion<[z.ZodLiteral<"eleven_english_sts_v2">, z.ZodLiteral<"eleven_monolingual_v1">, z.ZodLiteral<"eleven_multilingual_v1">, z.ZodLiteral<"eleven_multilingual_v2">, z.ZodLiteral<"eleven_turbo_v2">]>;
    outputFormat: z.ZodUnion<[z.ZodLiteral<"mp3_44100_64">, z.ZodLiteral<"mp3_44100_96">, z.ZodLiteral<"mp3_44100_128">, z.ZodLiteral<"mp3_44100_192">, z.ZodLiteral<"pcm_16000">, z.ZodLiteral<"pcm_22050">, z.ZodLiteral<"pcm_24000">, z.ZodLiteral<"pcm_44100">, z.ZodLiteral<"ulaw_8000">]>;
    /**
     * Voices supported by the ElevenLabs Text-to-Speech API.
     *
     * @see https://elevenlabs.io/docs/api-reference/get-voices
     */
    voiceId: z.ZodString;
    voiceSettings: z.ZodDefault<z.ZodAny>;
}>, "strip", z.ZodTypeAny, {
    modelId: "eleven_english_sts_v2" | "eleven_monolingual_v1" | "eleven_multilingual_v1" | "eleven_multilingual_v2" | "eleven_turbo_v2";
    outputFormat: "mp3_44100_64" | "mp3_44100_96" | "mp3_44100_128" | "mp3_44100_192" | "pcm_16000" | "pcm_22050" | "pcm_24000" | "pcm_44100" | "ulaw_8000";
    voiceId: string;
    voiceSettings?: any;
    apiKey?: string | undefined;
}, {
    modelId: "eleven_english_sts_v2" | "eleven_monolingual_v1" | "eleven_multilingual_v1" | "eleven_multilingual_v2" | "eleven_turbo_v2";
    outputFormat: "mp3_44100_64" | "mp3_44100_96" | "mp3_44100_128" | "mp3_44100_192" | "pcm_16000" | "pcm_22050" | "pcm_24000" | "pcm_44100" | "ulaw_8000";
    voiceId: string;
    voiceSettings?: any;
    apiKey?: string | undefined;
}>;
export type ClientConfig = z.input<typeof client_config>;
/**
 * Client for the ElevenLabs Text-to-Speech API.
 */
export declare const defClient: (config: ClientConfig) => {
    config: {
        modelId: "eleven_english_sts_v2" | "eleven_monolingual_v1" | "eleven_multilingual_v1" | "eleven_multilingual_v2" | "eleven_turbo_v2";
        outputFormat: "mp3_44100_64" | "mp3_44100_96" | "mp3_44100_128" | "mp3_44100_192" | "pcm_16000" | "pcm_22050" | "pcm_24000" | "pcm_44100" | "ulaw_8000";
        voiceId: string;
    };
    extension: string;
    synthesize: (text: string) => Promise<{
        error: Error;
        value?: undefined;
    } | {
        value: Readable;
        error?: undefined;
    }>;
};
//# sourceMappingURL=elevenlabs-text-to-speech.d.ts.map