import { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios"; import * as Rx from "rxjs"; import * as Store from "../rate-limits/store"; import * as Helpers from "./rate-limits/helpers"; export type Request = { route: string; config: AxiosRequestConfig; resolve: () => void; }; export type Response = { route: string; config: AxiosRequestConfig; response: AxiosResponse; rateLimit: Helpers.RateLimitDetails; }; export interface Options { rateLimitStore: Store.Store; globalLimit: number; globalWindow: number; delayMargin?: number; axios: AxiosInstance; } export declare const interceptors: ({ rateLimitStore: store, globalLimit, globalWindow, delayMargin, axios, }: Options) => { request: (config: AxiosRequestConfig) => Promise; response: (response: AxiosResponse) => AxiosResponse; error: (err: AxiosError) => Promise; effects$: Rx.Observable; debug$: Rx.Observable; };