import { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'; export declare type QueryType = Record; export declare type AnyType = any; export interface ChaparResponse { success: boolean; data: Data; message?: string; } export declare type MultipleBaseUrlType = Record; export declare type BaseUrlType = string | MultipleBaseUrlType; export declare type OnErrorCallbackType = (err: AxiosError>, extraData?: AnyType) => void; export declare type OnFailCallbackType = (response: Response, extraData?: AnyType) => void; export declare type OnResponseFulfilled = (response: AxiosResponse) => void; export declare type OnResponseRejected = (error: AxiosError & { status: number; }) => void; export declare type OnRequestFulfilled = (config: AxiosRequestConfig) => void; export declare type OnRequestRejected = (error: Error) => void; export declare type CheckStatusFuncType = (statusCode: number, response: Response) => boolean; export declare type MetaDataFnType = (response: Response) => MData; export declare type BaseUrlTypeExtractor = Extract extends never ? BaseUrl : keyof BaseUrl; export interface DefaultConfigs { callOnFail: boolean; } export interface ChaparConstructorArgs, MData = AnyType> { baseUrl?: BaseUrl; authToken?: AuthToken; timeout?: number; authorizationKey?: string; throwError?: boolean; successKey?: keyof Response; headers?: Record; dataKey?: keyof Response; messageKey?: keyof Response; defaultConfigs?: Partial; onError?: OnErrorCallbackType; checkStatusFunc?: CheckStatusFuncType; metaDataFn?: MetaDataFnType; onFail?: OnFailCallbackType; beforeRequest?: VoidFunction; afterRequest?: VoidFunction; } export interface CreateUrlArgs { url: string; baseUrlType?: BaseUrlTypeExtractor; args?: Array; queries?: QueryType; } export interface SetupAgentArgs { baseUrl: string; } export interface SetupInterceptorArgs { onResponseFulfilled?: OnResponseFulfilled; onResponseRejected?: OnResponseRejected; onRequestFulfilled?: OnRequestFulfilled; onRequestRejected?: OnRequestRejected; on400Callback?: (res: SendChaparReturnType) => void; on401Callback?: (res: SendChaparReturnType) => void; on403Callback?: (res: SendChaparReturnType) => void; on404Callback?: (res: SendChaparReturnType) => void; on500Callback?: (res: SendChaparReturnType) => void; } export interface SendChaparArgs { method?: 'get' | 'post' | 'put' | 'delete' | 'patch'; body?: Body; setToken?: boolean; headers?: Record; baseUrlType?: BaseUrlTypeExtractor; throwError?: boolean; callOnFail?: boolean; callTimingFn?: boolean; dto?: (payload: Response, metaData?: MData) => $NullType; onUploadProgress?: (data: Response) => void; } export interface SendChaparReturnType { success: boolean; statusCode?: number; data: $NullType; metaData: $NullType; message?: string; } export declare type ChaparFunc = Promise>; export declare type AuthTokenFunc = () => string; export declare type AuthToken = string | AuthTokenFunc;