export type VoiceId = 'Aditi' | 'Amy' | 'Aria' | 'Arlet' | 'Arthur' | 'Astrid' | 'Ayanda' | 'Bianca' | 'Brian' | 'Camila' | 'Carla' | 'Carmen' | 'Celine' | 'Chantal' | 'Conchita' | 'Cristiano' | 'Daniel' | 'Dora' | 'Elin' | 'Emma' | 'Enrique' | 'Ewa' | 'Filiz' | 'Gabrielle' | 'Geraint' | 'Giorgio' | 'Gwyneth' | 'Hala' | 'Hannah' | 'Hans' | 'Hiujin' | 'Ida' | 'Ines' | 'Ivy' | 'Jacek' | 'Jan' | 'Joanna' | 'Joey' | 'Justin' | 'Kajal' | 'Karl' | 'Kazuha' | 'Kendra' | 'Kevin' | 'Kimberly' | 'Laura' | 'Lea' | 'Liam' | 'Lisa' | 'Liv' | 'Lotte' | 'Lucia' | 'Lupe' | 'Mads' | 'Maja' | 'Marlene' | 'Mathieu' | 'Matthew' | 'Maxim' | 'Mia' | 'Miguel' | 'Mizuki' | 'Naja' | 'Niamh' | 'Nicole' | 'Ola' | 'Olivia' | 'Pedro' | 'Penelope' | 'Raveena' | 'Remi' | 'Ricardo' | 'Ruben' | 'Russell' | 'Ruth' | 'Salli' | 'Seoyeon' | 'Sergio' | 'Sofie' | 'Stephen' | 'Suvi' | 'Takumi' | 'Tatyana' | 'Thiago' | 'Tomoko' | 'Vicki' | 'Vitoria' | 'Zayd' | 'Zeina' | 'Zhiyu';
export type LanguageCode = 'arb' | 'ca-ES' | 'cmn-CN' | 'cy-GB' | 'da-DK' | 'de-AT' | 'de-DE' | 'en-AU' | 'en-GB' | 'en-GB-WLS' | 'en-IE' | 'en-IN' | 'en-NZ' | 'en-US' | 'en-ZA' | 'es-ES' | 'es-MX' | 'es-US' | 'fi-FI' | 'fr-BE' | 'fr-CA' | 'fr-FR' | 'hi-IN' | 'is-IS' | 'it-IT' | 'ja-JP' | 'ko-KR' | 'nb-NO' | 'nl-BE' | 'nl-NL' | 'pl-PL' | 'pt-BR' | 'pt-PT' | 'ro-RO' | 'ru-RU' | 'sv-SE' | 'tr-TR' | 'yue-CN';
export type Engine = 'standard' | 'neural' | 'long-form' | 'generative';
export type OutputFormat = 'json' | 'mp3' | 'ogg_vorbis' | 'pcm';
export type TextType = 'ssml' | 'text';
export type SpeechMarkType = 'sentence' | 'ssml' | 'viseme' | 'word';
export interface Voice {
    Gender?: 'Female' | 'Male';
    Id?: VoiceId;
    LanguageCode?: LanguageCode;
    LanguageName?: string;
    Name?: string;
    AdditionalLanguageCodes?: LanguageCode[];
    SupportedEngines?: Engine[];
}
export interface SynthesizeSpeechCommandInput {
    Engine?: Engine;
    LanguageCode?: LanguageCode;
    LexiconNames?: string[];
    OutputFormat: OutputFormat;
    SampleRate?: string;
    SpeechMarkTypes?: SpeechMarkType[];
    Text: string;
    TextType?: TextType;
    VoiceId: VoiceId;
}
export interface SynthesizeSpeechCommandOutput {
    AudioStream?: Uint8Array;
    ContentType?: string;
    RequestCharacters?: number;
}
export interface DescribeVoicesCommandInput {
    Engine?: Engine;
    LanguageCode?: LanguageCode;
    IncludeAdditionalLanguageCodes?: boolean;
    NextToken?: string;
}
export interface DescribeVoicesCommandOutput {
    Voices?: Voice[];
    NextToken?: string;
}
export interface StartSpeechSynthesisTaskCommandInput {
    Engine?: Engine;
    LanguageCode?: LanguageCode;
    LexiconNames?: string[];
    OutputFormat: OutputFormat;
    OutputS3BucketName: string;
    OutputS3KeyPrefix?: string;
    SampleRate?: string;
    SnsTopicArn?: string;
    SpeechMarkTypes?: SpeechMarkType[];
    Text: string;
    TextType?: TextType;
    VoiceId: VoiceId;
}
export interface SynthesisTask {
    Engine?: Engine;
    TaskId?: string;
    TaskStatus?: 'scheduled' | 'inProgress' | 'completed' | 'failed';
    TaskStatusReason?: string;
    OutputUri?: string;
    CreationTime?: string;
    RequestCharacters?: number;
    SnsTopicArn?: string;
    LexiconNames?: string[];
    OutputFormat?: OutputFormat;
    SampleRate?: string;
    SpeechMarkTypes?: SpeechMarkType[];
    TextType?: TextType;
    VoiceId?: VoiceId;
    LanguageCode?: LanguageCode;
}
export interface StartSpeechSynthesisTaskCommandOutput {
    SynthesisTask?: SynthesisTask;
}
export interface GetSpeechSynthesisTaskCommandInput {
    TaskId: string;
}
export interface GetSpeechSynthesisTaskCommandOutput {
    SynthesisTask?: SynthesisTask;
}
export interface ListSpeechSynthesisTasksCommandInput {
    MaxResults?: number;
    NextToken?: string;
    Status?: 'scheduled' | 'inProgress' | 'completed' | 'failed';
}
export interface ListSpeechSynthesisTasksCommandOutput {
    NextToken?: string;
    SynthesisTasks?: SynthesisTask[];
}
export interface PutLexiconCommandInput {
    Name: string;
    Content: string;
}
export interface PutLexiconCommandOutput {
}
export interface GetLexiconCommandInput {
    Name: string;
}
export interface Lexicon {
    Content?: string;
    Name?: string;
}
export interface LexiconAttributes {
    Alphabet?: string;
    LanguageCode?: LanguageCode;
    LastModified?: string;
    LexemesCount?: number;
    LexiconArn?: string;
    Size?: number;
}
export interface GetLexiconCommandOutput {
    Lexicon?: Lexicon;
    LexiconAttributes?: LexiconAttributes;
}
export interface DeleteLexiconCommandInput {
    Name: string;
}
export interface DeleteLexiconCommandOutput {
}
export interface ListLexiconsCommandInput {
    NextToken?: string;
}
export interface ListLexiconsCommandOutput {
    Lexicons?: Array<{
        Name?: string;
        Attributes?: LexiconAttributes;
    }>;
    NextToken?: string;
}
export declare class PollyClient {
    private client;
    private region;
    constructor(region?: string);
    /**
     * Synthesize speech from text (synchronous)
     */
    synthesizeSpeech(params: SynthesizeSpeechCommandInput): Promise<SynthesizeSpeechCommandOutput>;
    /**
     * Start async speech synthesis task
     */
    startSpeechSynthesisTask(params: StartSpeechSynthesisTaskCommandInput): Promise<StartSpeechSynthesisTaskCommandOutput>;
    /**
     * Get speech synthesis task status
     */
    getSpeechSynthesisTask(params: GetSpeechSynthesisTaskCommandInput): Promise<GetSpeechSynthesisTaskCommandOutput>;
    /**
     * List speech synthesis tasks
     */
    listSpeechSynthesisTasks(params?: ListSpeechSynthesisTasksCommandInput): Promise<ListSpeechSynthesisTasksCommandOutput>;
    /**
     * List available voices
     */
    describeVoices(params?: DescribeVoicesCommandInput): Promise<DescribeVoicesCommandOutput>;
    /**
     * Store a pronunciation lexicon
     */
    putLexicon(params: PutLexiconCommandInput): Promise<PutLexiconCommandOutput>;
    /**
     * Get a lexicon
     */
    getLexicon(params: GetLexiconCommandInput): Promise<GetLexiconCommandOutput>;
    /**
     * Delete a lexicon
     */
    deleteLexicon(params: DeleteLexiconCommandInput): Promise<DeleteLexiconCommandOutput>;
    /**
     * List lexicons
     */
    listLexicons(params?: ListLexiconsCommandInput): Promise<ListLexiconsCommandOutput>;
    /**
     * Simple text to speech - returns MP3 audio bytes
     */
    textToSpeech(text: string, options?: {
        voiceId?: VoiceId;
        engine?: Engine;
        languageCode?: LanguageCode;
    }): Promise<Uint8Array>;
    /**
     * Text to speech with SSML support
     */
    ssmlToSpeech(ssml: string, options?: {
        voiceId?: VoiceId;
        engine?: Engine;
        languageCode?: LanguageCode;
    }): Promise<Uint8Array>;
    /**
     * Save speech to S3 (for longer texts)
     */
    saveToS3(text: string, bucket: string, keyPrefix: string, options?: {
        voiceId?: VoiceId;
        engine?: Engine;
        languageCode?: LanguageCode;
        textType?: TextType;
    }): Promise<{
        taskId: string;
        outputUri: string;
    }>;
    /**
     * List voices for a specific language
     */
    listVoicesForLanguage(languageCode: LanguageCode): Promise<Voice[]>;
    /**
     * List neural voices
     */
    listNeuralVoices(): Promise<Voice[]>;
    /**
     * Wait for synthesis task to complete
     */
    waitForTask(taskId: string, options?: {
        maxWaitMs?: number;
        pollIntervalMs?: number;
    }): Promise<SynthesisTask>;
}
/**
 * Quick text to speech
 */
export declare function textToSpeech(text: string, options?: {
    voiceId?: VoiceId;
    engine?: Engine;
    region?: string;
}): Promise<Uint8Array>;
/**
 * List available voices
 */
export declare function listVoices(options?: {
    languageCode?: LanguageCode;
    engine?: Engine;
    region?: string;
}): Promise<Voice[]>;
/**
 * Create SSML with speech marks (pauses, emphasis, etc.)
 */
export declare function createSSML(text: string, options?: {
    rate?: 'x-slow' | 'slow' | 'medium' | 'fast' | 'x-fast';
    pitch?: 'x-low' | 'low' | 'medium' | 'high' | 'x-high';
    volume?: 'silent' | 'x-soft' | 'soft' | 'medium' | 'loud' | 'x-loud';
}): string;
