/**
 * 请求适配器抽象接口
 *
 * 适配器负责将框架请求抽象映射到具体的 HTTP 实现（如 axios、ky、fetch 等）
 */
import type { RequestOptions, Response, AdapterCapabilities } from '../types';
/**
 * 请求适配器接口
 *
 * 所有具体的 HTTP 实现（axios、ky、fetch 等）都需要通过适配器接入
 */
export interface RequestAdapter {
    /**
     * 适配器名称
     */
    readonly name: string;
    /**
     * 适配器能力声明
     */
    readonly capabilities: AdapterCapabilities;
    /**
     * 执行请求
     *
     * @template TResponse - 响应数据类型
     * @param options - 请求配置选项
     * @returns Promise 解析为响应对象
     */
    request<TResponse = unknown>(options: RequestOptions<TResponse>): Promise<Response<TResponse>>;
    /**
     * 取消请求
     *
     * @param signal - 中止信号
     */
    cancel?(signal: AbortSignal): void;
    /**
     * 销毁适配器，清理资源
     */
    destroy?(): void;
}
/**
 * 适配器工厂函数类型
 */
export type AdapterFactory = () => Promise<RequestAdapter> | RequestAdapter;
/**
 * 适配器注册表
 */
declare class AdapterRegistry {
    private adapters;
    /**
     * 注册适配器
     *
     * @param name - 适配器名称
     * @param factory - 适配器工厂函数
     */
    register(name: string, factory: AdapterFactory): void;
    /**
     * 获取适配器
     *
     * @param name - 适配器名称
     * @returns 适配器实例
     */
    get(name: string): Promise<RequestAdapter>;
    /**
     * 检查适配器是否已注册
     *
     * @param name - 适配器名称
     * @returns 是否已注册
     */
    has(name: string): boolean;
    /**
     * 获取所有已注册的适配器名称
     *
     * @returns 适配器名称数组
     */
    getAllNames(): string[];
    /**
     * 清除所有适配器
     */
    clear(): void;
}
/**
 * 全局适配器注册表
 */
export declare const adapterRegistry: AdapterRegistry;
export {};
//# sourceMappingURL=RequestAdapter.d.ts.map