export interface XfyunASROptions {
    appId: string;
    apiKey: string;
    apiSecret: string;
    language?: 'zh_cn' | 'en_us';
    domain?: 'iat' | 'medical' | 'assistant';
    accent?: 'mandarin' | 'cantonese';
    vadEos?: number;
    maxAudioSize?: number;
    autoStart?: boolean;
    hotWords?: string[];
    punctuation?: boolean | string;
    audioFormat?: string;
}
export type RecognizerState = 'idle' | 'connecting' | 'connected' | 'recording' | 'stopped' | 'error';
export interface XfyunError {
    code: number;
    message: string;
    data?: any;
}
export interface ASREventHandlers {
    onStart?: () => void;
    onStop?: () => void;
    onRecognitionResult?: (text: string, isEnd: boolean) => void;
    onProcess?: (volume: number) => void;
    onError?: (error: XfyunError) => void;
    onStateChange?: (state: RecognizerState) => void;
}
export interface XfyunWebsocketRequest {
    common?: {
        app_id: string;
    };
    business?: {
        language?: string;
        domain?: string;
        accent?: string;
        vad_eos?: number;
        dwa?: string;
        pd?: string;
        ptt?: number;
        rlang?: string;
        vinfo?: number;
        nunum?: number;
        speex_size?: number;
        nbest?: number;
        wbest?: number;
        nlu?: string;
        hotwords?: string;
        punctuation?: string;
    };
    data?: {
        status: number;
        format: string;
        encoding: string;
        audio?: string;
    };
}
export interface XfyunWebsocketResponse {
    code: number;
    message: string;
    sid?: string;
    data?: {
        result?: {
            ws: Array<{
                bg: number;
                cw: Array<{
                    w: string;
                    sc: number;
                }>;
            }>;
            sn: number;
            ls: boolean;
            bg: number;
            ed: number;
        };
        status: number;
    };
}
