import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
export declare const protobufPackage = "aristech.tts";
/** Further options for a `SpeechRequest`. */
export interface SpeechRequestOption {
    /**
     * The `voiceId` from `Voice` to use as wrapping voice to synthesize text.
     * Note: The `voiceId` can also be swapped within the text by using ssml's
     * `<voice/>` tag with another `voiceId`.
     */
    voiceId: string;
    /** Further options that specify the generated audio. */
    audio: SpeechAudioFormat | undefined;
    /**
     * If the text should be normalized before being transformed into audio or
     * not.
     */
    normalize: boolean;
    /**
     * If the server should fetch audio from cache or save the audio to cache if
     * enabled.
     */
    cache: boolean;
}
/**
 * `SpeechRequestOptionAudioFormat` specifies the retured audio format for a
 * `getSpeech` request.
 */
export interface SpeechAudioFormat {
    /** The container to use. */
    container: SpeechAudioFormat_Container;
    /** The encoding of the audio. */
    codec: SpeechAudioFormat_Codec;
    /** The samplerate of the audio. */
    samplerate: number;
    /** The bitrate of the audio. */
    bitrate: number;
    /** The channels count of the audio. */
    channels: number;
}
/** Indicates the container of the audio. */
export declare enum SpeechAudioFormat_Container {
    /** WAV - wav */
    WAV = 0,
    /** RAW - raw */
    RAW = 1,
    /** FLAC - flac */
    FLAC = 2,
    /** OGG - ogg */
    OGG = 3,
    /** MP3 - mp3 */
    MP3 = 4,
    /** SPEEX - speex */
    SPEEX = 5,
    UNRECOGNIZED = -1
}
export declare function speechAudioFormat_ContainerFromJSON(object: any): SpeechAudioFormat_Container;
export declare function speechAudioFormat_ContainerToJSON(object: SpeechAudioFormat_Container): string;
/** Indicates the codec of the audio. */
export declare enum SpeechAudioFormat_Codec {
    /** PCM - pcm a.k.a. signed-integer */
    PCM = 0,
    /** MU_LAW - mu-law */
    MU_LAW = 1,
    /** A_LAW - a-law */
    A_LAW = 2,
    UNRECOGNIZED = -1
}
export declare function speechAudioFormat_CodecFromJSON(object: any): SpeechAudioFormat_Codec;
export declare function speechAudioFormat_CodecToJSON(object: SpeechAudioFormat_Codec): string;
/** Represents a languages locale. */
export interface SpeechLocale {
    /** Example locale: de_DE */
    language: string;
    /** ex.: DE */
    accent: string;
    /** ex.: Deutsch */
    languageName: string;
    /** ex.: Deutschland */
    accentName: string;
}
/** holds some default config values of a voice */
export interface VoiceDefaults {
    rate: string;
    pitch: string;
}
/** Contains several infos about a voice */
export interface Voice {
    /** [Output-only] The voice name. */
    name: string;
    /** [Output-only] The audio type of the voice. */
    audio: SpeechAudioFormat | undefined;
    /** [Output-only] The locale of the voice. */
    locale: SpeechLocale | undefined;
    /** [Output-only] The gender of the voice. */
    gender: Voice_Gender;
    /**
     * [Output-only] The voice id.
     * This is the value to use as `SpeechRequestOption.voice_id`
     */
    voiceId: string;
    /** [Output-only] The uuid of the voice. */
    uuid: string;
    /** The version number of the voice */
    version: string;
    /** available ports for the voice as configured in the license; */
    portsAvailable: number;
    /** whether debug is available for the voice (only with developer license) */
    debugAvailable: boolean;
    /** default config values */
    defaults: VoiceDefaults | undefined;
}
export declare enum Voice_Gender {
    FEMALE = 0,
    MALE = 1,
    OTHER = 2,
    UNRECOGNIZED = -1
}
export declare function voice_GenderFromJSON(object: any): Voice_Gender;
export declare function voice_GenderToJSON(object: Voice_Gender): string;
export declare const SpeechRequestOption: MessageFns<SpeechRequestOption>;
export declare const SpeechAudioFormat: MessageFns<SpeechAudioFormat>;
export declare const SpeechLocale: MessageFns<SpeechLocale>;
export declare const VoiceDefaults: MessageFns<VoiceDefaults>;
export declare const Voice: MessageFns<Voice>;
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export interface MessageFns<T> {
    encode(message: T, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): T;
    fromJSON(object: any): T;
    toJSON(message: T): unknown;
    create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
    fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}
export {};
