/**
 * 音频请求工具函数
 * 支持处理音频流，包括常规请求和流式请求的响应处理
 */
/**
 * 音频数据类型
 */
export interface AudioData {
    /** 音频base64数据 */
    audio?: string;
    /** 是否为最后一块数据 */
    is_last?: boolean;
    /** 数据类型 */
    type?: string;
    /** 其他任意属性 */
    [key: string]: any;
}
/**
 * 音频处理选项
 */
export interface AudioProcessOptions {
    /** 是否自动播放音频 */
    autoPlay?: boolean;
    /** 是否返回完整的Blob (仅用于流式请求) */
    returnBlob?: boolean;
    /** MIME类型 */
    mimeType?: string;
    /** 收到音频数据回调 */
    onAudioData?: (audioBlob: Blob) => void;
    /** 错误回调 */
    onError?: (error: Error) => void;
    /** 完成回调 */
    onComplete?: (blob?: Blob) => void;
    /** 音频开始播放回调 */
    onStart?: () => void;
    /** 音频播放结束回调 */
    onEnded?: () => void;
    /** 音频数据字段路径，例如'data.audio'或'audio' */
    audioField?: string;
}
/**
 * 音频控制接口
 */
export interface AudioControl {
    /** 暂停播放 */
    pause: () => void;
    /** 恢复播放 */
    resume: () => void;
    /** 中止处理 */
    abort: () => void;
    /** 是否正在播放 */
    isPlaying: () => boolean;
    /** 完整音频Blob (如果returnBlob为true) */
    finalBlob?: Promise<Blob>;
}
/**
 * 处理流式音频响应
 * @param reader 响应流的Reader对象
 * @param options 处理选项
 * @returns 控制对象
 */
export declare function processStreamResponse(reader: ReadableStreamDefaultReader<Uint8Array>, options?: AudioProcessOptions): Promise<AudioControl>;
/**
 * 处理Axios进度事件的音频数据
 * @param onDownloadProgress Axios进度事件处理函数
 * @param options 处理选项
 * @returns 控制对象
 */
export declare function processAxiosProgress(options?: AudioProcessOptions): {
    onDownloadProgress: (progressEvent: any) => void;
    pause: () => void;
    resume: () => void;
    abort: () => void;
    isPlaying: () => boolean;
    finalBlob?: Promise<Blob>;
};
/**
 * 处理音频数据
 * @param arrayBuffer ArrayBuffer音频数据
 * @param options 处理选项
 * @returns Blob对象
 */
export declare function processArrayBuffer(arrayBuffer: ArrayBuffer, options?: AudioProcessOptions): Blob;
/**
 * 处理Blob音频数据
 * @param blob Blob音频数据
 * @param options 处理选项
 * @returns Blob对象
 */
export declare function processBlob(blob: Blob, options?: AudioProcessOptions): Blob;
/**
 * 创建Axios请求的处理配置
 * @param options 处理选项
 * @returns axios配置和控制对象
 */
export declare function createAxiosAudioOptions(options?: AudioProcessOptions): {
    axiosConfig: {
        responseType: string;
        onDownloadProgress: (progressEvent: any) => void;
    };
    pause: () => void;
    resume: () => void;
    abort: () => void;
    isPlaying: () => boolean;
    finalBlob?: Promise<Blob>;
};
/**
 * 处理用户直接提供的base64音频数据
 * @param base64Audio base64编码的音频数据
 * @param options 处理选项
 * @returns 控制对象
 */
export declare function processBase64Audio(base64Audio: string, options?: AudioProcessOptions): {
    blob: Blob;
    pause: () => void;
    resume: () => void;
    abort: () => void;
    isPlaying: () => boolean;
};
/**
 * 创建base64音频流处理器，用于处理用户持续传入的base64音频数据
 * @param options 处理选项
 * @returns 处理器对象
 */
export declare function createBase64StreamProcessor(options?: AudioProcessOptions): {
    processChunk: (base64Chunk: string, isLast?: boolean) => Promise<void>;
    getBlob: () => Blob | null;
    getAudioUrl: () => string | null;
    pause: () => void;
    resume: () => void;
    abort: () => void;
    isPlaying: () => boolean;
    finalBlob?: Promise<Blob>;
};
/**
 * 音频请求工具
 * @example
 * ```typescript
 * // 处理流式响应
 * const response = await fetch('https://api.example.com/audio/stream', {
 *   method: 'POST',
 *   headers: { 'Content-Type': 'application/json' },
 *   body: JSON.stringify({ text: '要合成的文本' })
 * });
 *
 * const reader = response.body.getReader();
 * const { pause, resume, abort, isPlaying, finalBlob } = await processStreamResponse(reader, {
 *   autoPlay: true,
 *   returnBlob: true,
 *   onAudioData: (blob) => {
 *     // 处理每个音频数据块
 *     console.log('收到音频数据块:', blob.size);
 *   }
 * });
 *
 * // 暂停播放
 * pauseButton.onclick = () => {
 *   pause();
 * };
 *
 * // 恢复播放
 * playButton.onclick = () => {
 *   resume();
 * };
 *
 * // 检查播放状态
 * console.log('是否正在播放:', isPlaying());
 *
 * // 使用Axios进行流式音频请求
 * import axios from 'axios';
 *
 * // 创建Axios配置
 * const { axiosConfig, pause, resume, abort, isPlaying, finalBlob } = createAxiosAudioOptions({
 *   autoPlay: true,
 *   returnBlob: true,
 *   audioField: 'data.audio', // 音频数据在响应中的路径
 *   onAudioData: (blob) => {
 *     console.log('收到音频数据块:', blob.size);
 *   }
 * });
 *
 * // 发送请求
 * const response = await axios.post(
 *   'https://api.example.com/audio/stream',
 *   { text: '要合成的文本' },
 *   axiosConfig
 * );
 *
 * // 如果需要获取完整的Blob
 * if (finalBlob) {
 *   const completeBlob = await finalBlob;
 *   const url = URL.createObjectURL(completeBlob);
 *   console.log('完整音频URL:', url);
 * }
 *
 * // 处理用户直接提供的base64音频数据
 * const base64Audio = 'RIFF...'; // 用户已经处理好的base64音频数据
 * const { blob, pause, resume, isPlaying } = processBase64Audio(base64Audio, {
 *   autoPlay: true,
 *   onComplete: (blob) => {
 *     const url = URL.createObjectURL(blob);
 *     console.log('音频URL:', url);
 *   }
 * });
 *
 * // 处理用户持续传入的base64音频数据流
 * const processor = createBase64StreamProcessor({
 *   autoPlay: false,
 *   returnBlob: true,
 *   onAudioData: (blob) => {
 *     console.log('收到音频数据块:', blob.size);
 *   },
 *   onComplete: (blob) => {
 *     console.log('处理完成, 音频大小:', blob.size);
 *   }
 * });
 *
 * // 用户持续传入数据
 * userStream.on('data', (base64Chunk) => {
 *   processor.processChunk(base64Chunk);
 * });
 *
 * // 控制播放
 * pauseButton.onclick = () => processor.pause();
 * playButton.onclick = () => processor.resume();
 *
 * // 数据传输完成
 * userStream.on('end', () => {
 *   processor.processChunk('最后一块数据', true); // isLast=true 表示这是最后一块数据
 *   const audioUrl = processor.getAudioUrl();
 *   console.log('最终音频URL:', audioUrl);
 * });
 *
 * // 中止处理
 * cancelButton.onclick = () => {
 *   processor.abort();
 * };
 * ```
 */
declare const _default: {
    processStreamResponse: typeof processStreamResponse;
    processArrayBuffer: typeof processArrayBuffer;
    processBlob: typeof processBlob;
    processAxiosProgress: typeof processAxiosProgress;
    createAxiosAudioOptions: typeof createAxiosAudioOptions;
    processBase64Audio: typeof processBase64Audio;
    createBase64StreamProcessor: typeof createBase64StreamProcessor;
};
export default _default;
