import { AxiosResponse, AxiosRequestConfig } from 'axios'; export declare type ResponseDataExtractor = (response: AxiosResponse) => D; export interface ApiError { message: string; source: string; statusCode: number; status: string; } export declare class ApiClient { protected baseUrl: string; protected headerProcessor: () => object; protected extractor: ResponseDataExtractor; protected errorHandler: (error: ApiError) => void; constructor(baseUrl: string, headerProcessor: () => object, extractor: ResponseDataExtractor, errorHandler: (error: ApiError) => void); get(url: string, params?: object, apiOptions?: ApiOptions): Promise; exportFile(url: string, params?: object, apiOptions?: ApiOptions, tokenKeyName?: string): void; getAllRequestData(url: string, params?: object, apiOptions?: ApiOptions, tokenKeyName?: string): Promise; delete(url: string, params?: object, apiOptions?: ApiOptions): Promise; post(url: string, data?: object | any[], params?: object, apiOptions?: ApiOptions): Promise; put(url: string, data?: object, params?: object, apiOptions?: ApiOptions): Promise; patch(url: string, params?: object, apiOptions?: ApiOptions): Promise; execute(axiosOptions: AxiosRequestConfig): Promise; private dynamicDownload; private encodeSearchParams; private baseRequestOptions; } export interface ApiOptions { ignoreHeaders?: boolean; }