interface HttpClientConfig {
    timeout?: number;
    retries?: number;
}
interface RequestConfig {
    url: string;
    method: 'GET' | 'POST';
    headers?: Record<string, string> | undefined;
    data?: any;
    params?: Record<string, any> | undefined;
}
interface HttpResponse<T = any> {
    data: T;
    status: number;
    headers: Record<string, string>;
}
export declare class HttpClient {
    private readonly timeout;
    private readonly retries;
    constructor(config?: HttpClientConfig);
    request<T = any>(config: RequestConfig): Promise<HttpResponse<T>>;
    private executeRequest;
    private buildUrl;
    private prepareBody;
    private prepareHeaders;
    private parseResponse;
    private parseHeaders;
    private getContentType;
    private hasContentType;
    private sleep;
}
export {};
