import { InternalAxiosRequestConfig, AxiosResponse, Method } from 'axios'; /** * Request */ type Req = InternalAxiosRequestConfig; type ReqFn = (config: Req) => V | Promise; type ReqFulfilledFn = ((value: Req) => Req | Promise) | undefined; type ReqFulfilledFnMiddleWare = (onFulfilled: ReqFn) => ReqFn; type CreateReqMiddleWareParams = { handler: (config: InternalAxiosRequestConfig, options: T) => InternalAxiosRequestConfig; }; type CreateReqMiddleWare = (params: CreateReqMiddleWareParams) => (options: T) => ReqFulfilledFnMiddleWare; /** * Response */ type Res = AxiosResponse; type ResFn = (response: Res) => V | Promise; type ResFulfilledFn = ((value: Res) => Res | Promise) | undefined; type ResFulfilledFnMiddleWare = (onFulfilled: ResFn) => ResFn; type CreateResMiddleWareParams = { handler: (response: Res, options: T) => Res; }; type CreateResMiddleWare = (params: CreateResMiddleWareParams) => (options: T) => ResFulfilledFnMiddleWare; /** * Interceptors */ type Interceptor = { middlewares?: M[]; onFulfilled?: F; onError?: E; }; type Interceptors = { res?: Interceptor; req?: Interceptor; }; /** * Error */ type ErrFn = (error: Error) => Promise; declare const ReqMiddleWare: { create: CreateReqMiddleWare; removeFields: (options: { startWithChar?: string; methods?: Method[]; }) => ReqFulfilledFnMiddleWare; convertPascalCase: (options: { methods?: Method[]; }) => ReqFulfilledFnMiddleWare; }; declare const ResMiddleWare: { create: CreateResMiddleWare; convertCamelCase: (options: { contentTypes?: string[]; }) => ResFulfilledFnMiddleWare; }; export { type CreateReqMiddleWare as C, type ErrFn as E, type Interceptors as I, ReqMiddleWare as R, ResMiddleWare as a, type ReqFulfilledFn as b, type ReqFulfilledFnMiddleWare as c, type ResFulfilledFn as d, type ResFulfilledFnMiddleWare as e, type CreateResMiddleWare as f };