import { AxiosInstance } from 'axios'; import { AxiosResponse, AxiosRequestConfig as ReqConfig, AxiosInterceptorManager } from 'axios'; export declare type Interceptor = AxiosInterceptorManager['use']; export interface Operation { getContext: () => T; setContext: (config: any) => void; setHeaders: (headers: any) => void; } export declare type FulfilledHandler = (value: T) => T; export declare type Next = (op: Operation) => T; export declare type OnFulfilled = (op: Operation, next: Next) => T; export declare type OnRejected = (error: Error) => any; export interface Middleware { type: T; handlers: [FulfilledHandler, OnRejected | undefined]; } export declare type RequestMiddleware = Middleware<'request', ReqConfig>; export declare type ResponseMiddleware = Middleware<'response', AxiosResponse>; export declare function createRequestMiddleware(onFulfilled: OnFulfilled, onRejected?: OnRejected): RequestMiddleware; export declare function createResponseMiddleware(onFulfilled: OnFulfilled, onRejected?: OnRejected): ResponseMiddleware; export declare type ClientInstance = AxiosInstance; export interface ClientOpts { url: string; middlewares?: Array; } export declare class AxiosClient { __client: ClientInstance; constructor(opts: ClientOpts); readonly client: ClientInstance; }