import { z } from "zod";
export type SherpaOnnxModelKind = "stt-online" | "stt-offline" | "tts";
type DefaultModelRole = "stt" | "tts";
type SherpaOnnxCatalogEntry = {
    kind: SherpaOnnxModelKind;
    archiveUrl?: string;
    downloadFiles?: Array<{
        url: string;
        relPath: string;
    }>;
    extractedDir: string;
    requiredFiles: string[];
    description: string;
    aliases?: readonly string[];
    defaultFor?: DefaultModelRole;
};
export declare const SHERPA_ONNX_MODEL_CATALOG: {
    readonly "zipformer-bilingual-zh-en-2023-02-20": {
        readonly kind: "stt-online";
        readonly archiveUrl: "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20.tar.bz2";
        readonly extractedDir: "sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20";
        readonly requiredFiles: ["encoder-epoch-99-avg-1.onnx", "decoder-epoch-99-avg-1.onnx", "joiner-epoch-99-avg-1.onnx", "tokens.txt"];
        readonly description: "Streaming Zipformer transducer (fast, good accuracy).";
        readonly aliases: readonly ["zipformer", "zipformer-bilingual"];
    };
    readonly "paraformer-bilingual-zh-en": {
        readonly kind: "stt-online";
        readonly archiveUrl: "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-paraformer-bilingual-zh-en.tar.bz2";
        readonly extractedDir: "sherpa-onnx-streaming-paraformer-bilingual-zh-en";
        readonly requiredFiles: ["encoder.int8.onnx", "decoder.int8.onnx", "tokens.txt"];
        readonly description: "Streaming Paraformer (often strong accuracy; heavier).";
        readonly aliases: readonly ["paraformer"];
    };
    readonly "parakeet-tdt-0.6b-v2-int8": {
        readonly kind: "stt-offline";
        readonly archiveUrl: "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-parakeet-tdt-0.6b-v2-int8.tar.bz2";
        readonly extractedDir: "sherpa-onnx-nemo-parakeet-tdt-0.6b-v2-int8";
        readonly requiredFiles: ["encoder.int8.onnx", "decoder.int8.onnx", "joiner.int8.onnx", "tokens.txt"];
        readonly description: "NVIDIA Parakeet TDT v2 (offline NeMo transducer, English).";
        readonly aliases: readonly ["parakeet-v2", "parakeet-tdt-v2"];
        readonly defaultFor: "stt";
    };
    readonly "parakeet-tdt-0.6b-v3-int8": {
        readonly kind: "stt-offline";
        readonly archiveUrl: "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8.tar.bz2";
        readonly extractedDir: "sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8";
        readonly requiredFiles: ["encoder.int8.onnx", "decoder.int8.onnx", "joiner.int8.onnx", "tokens.txt"];
        readonly description: "NVIDIA Parakeet TDT v3 (offline NeMo transducer, multilingual).";
        readonly aliases: readonly ["parakeet", "parakeet-v3", "parakeet-tdt"];
    };
    readonly "kitten-nano-en-v0_1-fp16": {
        readonly kind: "tts";
        readonly archiveUrl: "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/kitten-nano-en-v0_1-fp16.tar.bz2";
        readonly extractedDir: "kitten-nano-en-v0_1-fp16";
        readonly requiredFiles: ["model.fp16.onnx", "voices.bin", "tokens.txt", "espeak-ng-data"];
        readonly description: "KittenTTS (small, fast English TTS).";
        readonly aliases: readonly ["kitten"];
    };
    readonly "kokoro-en-v0_19": {
        readonly kind: "tts";
        readonly archiveUrl: "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/kokoro-en-v0_19.tar.bz2";
        readonly extractedDir: "kokoro-en-v0_19";
        readonly requiredFiles: ["model.onnx", "voices.bin", "tokens.txt", "espeak-ng-data"];
        readonly description: "Kokoro TTS (higher quality; larger).";
        readonly aliases: readonly ["kokoro"];
        readonly defaultFor: "tts";
    };
    readonly "pocket-tts-onnx-int8": {
        readonly kind: "tts";
        readonly extractedDir: "pocket-tts-onnx-int8";
        readonly downloadFiles: [{
            readonly url: "https://huggingface.co/KevinAHM/pocket-tts-onnx/resolve/main/onnx/mimi_encoder.onnx";
            readonly relPath: "onnx/mimi_encoder.onnx";
        }, {
            readonly url: "https://huggingface.co/KevinAHM/pocket-tts-onnx/resolve/main/onnx/text_conditioner.onnx";
            readonly relPath: "onnx/text_conditioner.onnx";
        }, {
            readonly url: "https://huggingface.co/KevinAHM/pocket-tts-onnx/resolve/main/onnx/flow_lm_main_int8.onnx";
            readonly relPath: "onnx/flow_lm_main_int8.onnx";
        }, {
            readonly url: "https://huggingface.co/KevinAHM/pocket-tts-onnx/resolve/main/onnx/flow_lm_flow_int8.onnx";
            readonly relPath: "onnx/flow_lm_flow_int8.onnx";
        }, {
            readonly url: "https://huggingface.co/KevinAHM/pocket-tts-onnx/resolve/main/onnx/mimi_decoder_int8.onnx";
            readonly relPath: "onnx/mimi_decoder_int8.onnx";
        }, {
            readonly url: "https://huggingface.co/KevinAHM/pocket-tts-onnx/resolve/main/tokenizer.model";
            readonly relPath: "tokenizer.model";
        }, {
            readonly url: "https://huggingface.co/KevinAHM/pocket-tts-onnx/resolve/main/reference_sample.wav";
            readonly relPath: "reference_sample.wav";
        }];
        readonly requiredFiles: ["onnx/mimi_encoder.onnx", "onnx/text_conditioner.onnx", "onnx/flow_lm_main_int8.onnx", "onnx/flow_lm_flow_int8.onnx", "onnx/mimi_decoder_int8.onnx", "tokenizer.model", "reference_sample.wav"];
        readonly description: "Pocket TTS ONNX (INT8) with streaming decode support (via onnxruntime).";
        readonly aliases: readonly ["pocket", "pocket-tts"];
    };
};
export type SherpaOnnxModelId = keyof typeof SHERPA_ONNX_MODEL_CATALOG;
export type LocalSpeechModelId = SherpaOnnxModelId;
type ModelIdByKind<K extends SherpaOnnxModelKind> = {
    [Id in SherpaOnnxModelId]: (typeof SHERPA_ONNX_MODEL_CATALOG)[Id]["kind"] extends K ? Id : never;
}[SherpaOnnxModelId];
export type LocalSttModelId = ModelIdByKind<"stt-online"> | ModelIdByKind<"stt-offline">;
export type LocalTtsModelId = ModelIdByKind<"tts">;
export declare const LOCAL_STT_MODEL_IDS: LocalSttModelId[];
export declare const LOCAL_TTS_MODEL_IDS: LocalTtsModelId[];
export declare const DEFAULT_LOCAL_STT_MODEL: LocalSttModelId;
export declare const DEFAULT_LOCAL_TTS_MODEL: LocalTtsModelId;
export declare const LocalSttModelIdSchema: z.ZodType<LocalSttModelId, z.ZodTypeDef, string>;
export declare const LocalTtsModelIdSchema: z.ZodType<LocalTtsModelId, z.ZodTypeDef, string>;
export type SherpaOnnxModelSpec = SherpaOnnxCatalogEntry & {
    id: SherpaOnnxModelId;
};
export declare function listSherpaOnnxModels(): SherpaOnnxModelSpec[];
export declare function getSherpaOnnxModelSpec(id: SherpaOnnxModelId): SherpaOnnxModelSpec;
export {};
//# sourceMappingURL=model-catalog.d.ts.map