import { AxiosInstance, CreateAxiosDefaults, InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
type ObjectType = Record<string, unknown> | undefined;
type RequestMethod = 'get' | 'delete' | 'post' | 'put';
type RequestParams = ObjectType;
type RequestConfig = ObjectType;
type Identifier = {
    url: string;
    params: ObjectType;
};
interface ParamsConfig extends CreateAxiosDefaults {
    requestInterceptorsSuccess?: RequestInterceptors;
    requestInterceptorsCatch?: InterceptorsCatch;
    responseInterceptorsSuccess?: ResponseInterceptors;
    responseInterceptorsCatch?: InterceptorsCatch;
}
type RequestInterceptors = ((config: InternalAxiosRequestConfig) => Promise<InternalAxiosRequestConfig>) | undefined;
type ResponseInterceptors = ((config: AxiosResponse) => Promise<AxiosResponse>) | undefined;
type InterceptorsCatch = ((err: AxiosError) => Promise<AxiosError>) | undefined;
export declare class Http {
    http: AxiosInstance;
    abortControllers: Map<string, AbortController>;
    requestInterceptors: number | null;
    responseInterceptors: number | null;
    requestInterceptorsSuccess: RequestInterceptors;
    requestInterceptorsCatch: InterceptorsCatch;
    responseInterceptorsSuccess: ResponseInterceptors;
    responseInterceptorsCatch: InterceptorsCatch;
    constructor(params: ParamsConfig);
    setupInterceptors(): void;
    get(url: string, params?: RequestParams, config?: RequestConfig): Promise<unknown>;
    delete(url: string, params?: RequestParams, config?: RequestConfig): Promise<unknown>;
    post(url: string, data?: RequestParams, config?: RequestConfig): Promise<unknown>;
    put(url: string, data?: RequestParams, config?: RequestConfig): Promise<unknown>;
    request(url: string, method: RequestMethod, data?: RequestParams, params?: RequestParams, config?: RequestConfig): Promise<unknown>;
    cancelRequest(identifier: Identifier[] | Identifier): void;
    getIdentifier(config: Identifier): string;
    requestInterceptorsEject(): Promise<unknown>;
    responseInterceptorsEject(): Promise<unknown>;
}
export {};
