import { AxiosInstance, AxiosRequestConfig } from "axios";
export interface BaseHttpClientParams {
    baseURL: string;
    headers: Record<string, string>;
}
export interface BaseAxiosParams {
    url: string;
    config?: AxiosRequestConfig;
}
export interface BasePostParams extends BaseAxiosParams {
    data: any;
}
export declare class HttpClient {
    protected axiosInstance: AxiosInstance | undefined;
    constructor();
    private initializeAxiosInstance;
    reinitialize(): void;
    get<T>({ url, config }: BaseAxiosParams): Promise<T>;
    post<T>({ url, data, config }: BasePostParams): Promise<T>;
    put<T>({ url, data, config }: BasePostParams): Promise<T>;
    delete<T>({ url, config }: BaseAxiosParams): Promise<T>;
    protected handleError(error: any): never;
}
//# sourceMappingURL=index.d.ts.map