/**
 * GPT-SoVITS SDK 类型定义
 */
/**
 * SDK客户端配置选项
 */
export interface GPTSoVITSClientOptions {
    /**
     * API基础URL，默认为http://127.0.0.1:9880
     */
    baseUrl?: string;
    /**
     * 请求超时时间（毫秒），默认为30000
     */
    timeout?: number;
    /**
     * 是否在控制台输出调试信息
     */
    debug?: boolean;
    /**
     * 自定义请求头
     */
    headers?: Record<string, string>;
    /**
     * 请求失败时的重试次数，默认为0
     */
    retries?: number;
}
/**
 * 文本语言类型
 */
export declare enum TextLanguage {
    CHINESE = "zh",
    ENGLISH = "en",
    JAPANESE = "ja"
}
/**
 * 媒体类型
 */
export declare enum MediaType {
    WAV = "wav",
    MP3 = "mp3",
    OGG = "ogg",
    RAW = "raw",
    AAC = "aac"
}
/**
 * 文本分割方法
 */
export declare enum TextSplitMethod {
    CUT0 = "cut0",
    CUT1 = "cut1",
    CUT2 = "cut2",
    CUT3 = "cut3",
    CUT4 = "cut4",
    CUT5 = "cut5"
}
/**
 * TTS请求参数
 */
export interface TTSRequestOptions {
    /**
     * 要合成的文本
     */
    text: string;
    /**
     * 文本语言，如 "zh", "en", "ja"
     */
    textLang: TextLanguage | string;
    text_lang?: TextLanguage | string;
    /**
     * 参考音频路径或ID
     */
    refAudioPath: string;
    ref_audio_path?: string;
    /**
     * 提示文本的语言
     */
    promptLang: TextLanguage | string;
    prompt_lang?: TextLanguage | string;
    /**
     * 参考音频的提示文本
     */
    promptText?: string;
    prompt_text?: string;
    /**
     * 辅助参考音频路径列表
     */
    auxRefAudioPaths?: string[];
    aux_ref_audio_paths?: string[];
    /**
     * GPT模型路径
     */
    gptModel?: string;
    gpt_model?: string;
    /**
     * SoVITS模型路径
     */
    sovitsModel?: string;
    sovits_model?: string;
    /**
     * Top-k采样，默认5
     */
    topK?: number;
    top_k?: number;
    /**
     * Top-p采样，默认1.0
     */
    topP?: number;
    top_p?: number;
    /**
     * 采样温度，默认1.0
     */
    temperature?: number;
    /**
     * 文本分割方法，默认"cut5"
     */
    textSplitMethod?: TextSplitMethod | string;
    text_split_method?: TextSplitMethod | string;
    /**
     * 批处理大小，默认1
     */
    batchSize?: number;
    batch_size?: number;
    /**
     * 批处理分割阈值，默认0.75
     */
    batchThreshold?: number;
    batch_threshold?: number;
    /**
     * 是否将批处理分割为多个桶，默认true
     */
    splitBucket?: boolean;
    split_bucket?: boolean;
    /**
     * 控制合成音频的速度，默认1.0
     */
    speedFactor?: number;
    speed_factor?: number;
    /**
     * 控制音频片段的间隔，默认0.3
     */
    fragmentInterval?: number;
    fragment_interval?: number;
    /**
     * 随机种子，默认-1
     */
    seed?: number;
    /**
     * 是否使用并行推理，默认true
     */
    parallelInfer?: boolean;
    parallel_infer?: boolean;
    /**
     * T2S模型的重复惩罚，默认1.35
     */
    repetitionPenalty?: number;
    repetition_penalty?: number;
    /**
     * 输出媒体类型，可选值: "wav", "mp3", "ogg", "raw", "aac"，默认"wav"
     */
    mediaType?: MediaType | string;
    media_type?: MediaType | string;
    /**
     * 是否返回流式响应，默认false
     */
    streamingMode?: boolean;
    streaming_mode?: boolean;
}
/**
 * TTS响应数据
 */
export interface TTSResponse {
    /**
     * 生成的音频文件路径
     */
    audio_path: string;
    /**
     * 音频时长（秒）
     */
    duration: number;
    /**
     * 媒体类型
     */
    media_type: string;
}
/**
 * 模型信息
 */
export interface ModelInfo {
    /**
     * 模型名称
     */
    name: string;
    /**
     * 模型路径
     */
    path: string;
    /**
     * 模型类型
     */
    type: "gpt" | "sovits";
    /**
     * 模型大小（字节）
     */
    size?: number;
    /**
     * 最后修改时间
     */
    last_modified?: string;
}
/**
 * 模型列表响应
 */
export interface ModelsResponse {
    /**
     * GPT模型列表
     */
    gpt_models: ModelInfo[];
    /**
     * SoVITS模型列表
     */
    sovits_models: ModelInfo[];
}
/**
 * 音频信息
 */
export interface AudioInfo {
    /**
     * 音频ID
     */
    id: string;
    /**
     * 音频名称
     */
    name: string;
    /**
     * 音频路径
     */
    path: string;
    /**
     * 完整路径
     */
    full_path: string;
    /**
     * 音频大小（字节）
     */
    size?: number;
    /**
     * 音频时长（秒）
     */
    duration?: number;
    /**
     * 提示文本
     */
    prompt_text?: string;
    /**
     * 角色名称（对于情感音频）
     */
    character?: string;
    /**
     * 语言（对于情感音频）
     */
    language?: string;
    /**
     * 情感类型（对于情感音频）
     */
    emotion?: string;
}
/**
 * 参考音频列表响应
 */
export interface ReferenceAudiosResponse {
    /**
     * 音频列表
     */
    audios: AudioInfo[];
    /**
     * 子目录列表
     */
    directories?: string[];
}
/**
 * 情感音频查询选项
 */
export interface EmotionAudiosQueryOptions {
    /**
     * 角色名称
     */
    character?: string;
    /**
     * 语言
     */
    language?: string;
    /**
     * 情感类型
     */
    emotion?: string;
}
/**
 * 情感音频列表响应
 */
export interface EmotionAudiosResponse {
    /**
     * 参考音频列表
     */
    referenceAudios: AudioInfo[];
    /**
     * 可用角色列表
     */
    characters: string[];
    /**
     * 可用语言列表
     */
    languages: string[];
    /**
     * 可用情感类型列表
     */
    emotions: string[];
}
/**
 * 设置模型请求
 */
export interface SetModelRequest {
    /**
     * 模型路径
     */
    modelPath: string;
}
/**
 * API响应基础接口
 */
export interface APIResponse<T = any> {
    /**
     * 状态码
     */
    code?: number;
    /**
     * 状态消息
     */
    message?: string;
    /**
     * 响应数据
     */
    data?: T;
    /**
     * 是否成功
     */
    success?: boolean;
}
/**
 * API错误响应
 */
export interface APIErrorResponse {
    /**
     * 错误码
     */
    code: number;
    /**
     * 错误类型
     */
    error: string;
    /**
     * 错误消息
     */
    message: string;
    /**
     * 详细信息
     */
    detail?: any;
}
/**
 * SDK错误类
 */
export declare class GPTSoVITSError extends Error {
    /**
     * 错误码
     */
    code?: number;
    /**
     * 原始错误
     */
    cause?: any;
    /**
     * 请求URL
     */
    url?: string;
    /**
     * 请求方法
     */
    method?: string;
    constructor(message: string, options?: {
        code?: number;
        cause?: any;
        url?: string;
        method?: string;
    });
}
/**
 * 健康检查响应
 */
export interface HealthResponse {
    /**
     * 状态
     */
    status: string;
    /**
     * 版本
     */
    version: string;
    /**
     * 模型是否已加载
     */
    models_loaded: boolean;
}
/**
 * 根端点响应
 */
export interface RootResponse {
    /**
     * 欢迎消息
     */
    message: string;
    /**
     * 版本
     */
    version: string;
    /**
     * 文档URL
     */
    docs_url: string;
    /**
     * ReDoc URL
     */
    redoc_url: string;
}
