/** * toAwaitFetch 实现 * Class 实现,参考 API 类型定义和生命周期图 */ import type { FetchInstance, FetchResultPromise, RequestConfig, GlobalConfig, RequestType, ResponseType, TransformResponseFn, CreateFetch, ToAwaitFetch } from './toAwaitFetch.api'; /** * 内部请求配置(包含 requestType 和 responseType) * 仅供内部使用,不对外暴露 */ interface InternalRequestConfig extends RequestConfig { /** * 请求数据类型(内部使用) * @default 'json' */ requestType?: RequestType; /** * 响应数据类型(内部使用) * @default 'json' */ responseType?: ResponseType; /** * 响应数据转换函数 */ transformResponse?: TransformResponseFn; } /** * FetchInstance 实现类 */ declare class FetchInstanceImpl implements FetchInstance { private globalConfig; constructor(globalConfig?: GlobalConfig); /** * 执行请求(核心逻辑) */ private executeRequest; /** * 发送请求(内部可接收 requestType 和 responseType) */ request(config: RequestConfig | InternalRequestConfig): FetchResultPromise; /** * 设置全局配置 */ setGlobalConfig(config: GlobalConfig): void; /** * 获取全局配置 */ getGlobalConfig(): GlobalConfig; /** * 合并全局配置 */ mergeGlobalConfig(config: Partial): void; /** * GET 请求 */ sendGet(url: string, params?: TRequest, config?: Omit, 'url' | 'method' | 'data'>): FetchResultPromise; /** * POST 请求(默认 JSON 格式) */ sendPost(url: string, data?: TRequest, config?: Omit, 'url' | 'method' | 'data'>): FetchResultPromise; /** * POST 请求(FormData 格式,用于文件上传) */ sendPostForm(url: string, data?: TRequest, config?: Omit, 'url' | 'method' | 'data'>): FetchResultPromise; /** * POST 请求(Blob 数据) */ sendPostBlob(url: string, data?: TRequest, config?: Omit, 'url' | 'method' | 'data'>): FetchResultPromise; /** * GET 请求(Blob 响应,用于下载文件) */ sendGetBlob(url: string, params?: TRequest, config?: Omit, 'url' | 'method' | 'data'>): FetchResultPromise; } /** * 创建 toAwaitFetch 实例的工厂函数 */ declare const createInstance: CreateFetch; /** * 导出常用方法,方便直接使用:import { sendGet, sendPost } from '...' * 使用箭头函数直接调用实例方法,确保 this 正确绑定 */ export declare const sendGet: (url: string, params?: TRequest, config?: Omit, "url" | "method" | "data">) => FetchResultPromise; export declare const sendPost: (url: string, data?: TRequest, config?: Omit, "url" | "method" | "data">) => FetchResultPromise; export declare const sendPostForm: (url: string, data?: TRequest, config?: Omit, "url" | "method" | "data">) => FetchResultPromise; export declare const sendPostBlob: (url: string, data?: TRequest, config?: Omit, "url" | "method" | "data">) => FetchResultPromise; export declare const sendGetBlob: (url: string, params?: TRequest, config?: Omit, "url" | "method" | "data">) => FetchResultPromise; export declare const setGlobalConfig: (config: GlobalConfig) => void; export declare const cancel: (promise: FetchResultPromise) => void; /** * 默认实例(既是工厂函数也是实例) * 支持 axios 风格调用:toAwaitFetch(config) 直接发起请求 */ declare const toAwaitFetch: ToAwaitFetch; export { createInstance, FetchInstanceImpl }; export default toAwaitFetch; //# sourceMappingURL=toAwaitFetch.d.ts.map