/**
 * HTTP客户端
 * 用于与后端API进行通信
 */
/**
 * HTTP请求方法类型
 */
type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
/**
 * HTTP请求选项
 */
export interface HttpRequestOptions {
    /** 请求方法 */
    method: HttpMethod;
    /** 请求URL */
    url: string;
    /** 请求头 */
    headers?: Record<string, string>;
    /** 请求体 */
    body?: any;
    /** 是否需要认证 */
    needAuth?: boolean;
}
/**
 * HTTP响应类型
 */
export interface HttpResponse<T = any> {
    /** 状态码 */
    status: number;
    /** 状态文本 */
    statusText: string;
    /** 响应体 */
    data: T;
    /** 响应头 */
    headers: Record<string, string>;
}
/**
 * HTTP错误类型
 */
export declare class HttpError extends Error {
    /** 状态码 */
    status: number;
    /** 状态文本 */
    statusText: string;
    /** 错误数据 */
    data: any;
    /**
     * 构造函数
     * @param message 错误信息
     * @param status 状态码
     * @param statusText 状态文本
     * @param data 错误数据
     */
    constructor(message: string, status: number, statusText: string, data: any);
}
/**
 * HTTP客户端类
 */
export declare class HttpClient {
    private tokenGetter?;
    private tenantId?;
    /**
     * 构造函数
     * @param logout
     * @param tokenGetter Token获取函数
     */
    constructor(tokenGetter?: () => string | null);
    /**
     * 设置Token获取函数
     * @param tokenGetter Token获取函数
     */
    setTokenGetter(tokenGetter: () => string | null): void;
    /**
     * 设置租户ID
     * @param tenantId 租户ID
     */
    setTenantId(tenantId?: string): void;
    /**
     * 发送HTTP请求
     * @param options 请求选项
     * @returns Promise<HttpResponse<T>> 响应结果
     */
    request<T = any>(options: HttpRequestOptions): Promise<HttpResponse<T>>;
    /**
     * 处理响应数据
     * @param response 响应对象
     * @param responseData 响应数据
     * @returns HttpResponse<T> 处理后的响应
     */
    private handleResponse;
    /**
     * 检查是否为业务响应结构
     * @param responseData 响应数据
     * @returns boolean 是否为业务响应结构
     */
    private isBusinessResponse;
    /**
     * 获取错误信息
     * @param responseData 响应数据
     * @returns string 错误信息
     */
    private getErrorMessage;
    /**
     * GET请求
     * @param url 请求URL
     * @param options 请求选项
     * @returns Promise<HttpResponse<T>> 响应结果
     */
    get<T = any>(url: string, options?: Omit<HttpRequestOptions, 'method' | 'url'>): Promise<HttpResponse<T>>;
    /**
     * POST请求
     * @param url 请求URL
     * @param body 请求体
     * @param options 请求选项
     * @returns Promise<HttpResponse<T>> 响应结果
     */
    post<T = any>(url: string, body?: any, options?: Omit<HttpRequestOptions, 'method' | 'url' | 'body'>): Promise<HttpResponse<T>>;
    /**
     * PUT请求
     * @param url 请求URL
     * @param body 请求体
     * @param options 请求选项
     * @returns Promise<HttpResponse<T>> 响应结果
     */
    put<T = any>(url: string, body?: any, options?: Omit<HttpRequestOptions, 'method' | 'url' | 'body'>): Promise<HttpResponse<T>>;
    /**
     * DELETE请求
     * @param url 请求URL
     * @param options 请求选项
     * @returns Promise<HttpResponse<T>> 响应结果
     */
    delete<T = any>(url: string, options?: Omit<HttpRequestOptions, 'method' | 'url'>): Promise<HttpResponse<T>>;
    /**
     * PATCH请求
     * @param url 请求URL
     * @param body 请求体
     * @param options 请求选项
     * @returns Promise<HttpResponse<T>> 响应结果
     */
    patch<T = any>(url: string, body?: any, options?: Omit<HttpRequestOptions, 'method' | 'url' | 'body'>): Promise<HttpResponse<T>>;
    /**
     * 解析响应体
     * @param response 响应对象
     * @returns Promise<any> 解析后的响应体
     */
    private parseResponse;
    /**
     * 解析响应头
     * @param headers 响应头对象
     * @returns Record<string, string> 解析后的响应头
     */
    private parseHeaders;
}
export {};
//# sourceMappingURL=http.d.ts.map