1// TypeScript Version: 3.0
2
3export type AxiosRequestHeaders = Record<string, string>;
4
5export type AxiosResponseHeaders = Record<string, string> & {
6 "set-cookie"?: string[]
7};
8
9export interface AxiosRequestTransformer {
10 (data: any, headers?: AxiosRequestHeaders): any;
11}
12
13export interface AxiosResponseTransformer {
14 (data: any, headers?: AxiosResponseHeaders): any;
15}
16
17export interface AxiosAdapter {
18 (config: AxiosRequestConfig): AxiosPromise;
19}
20
21export interface AxiosBasicCredentials {
22 username: string;
23 password: string;
24}
25
26export interface AxiosProxyConfig {
27 host: string;
28 port: number;
29 auth?: {
30 username: string;
31 password: string;
32 };
33 protocol?: string;
34}
35
36export type Method =
37 | 'get' | 'GET'
38 | 'delete' | 'DELETE'
39 | 'head' | 'HEAD'
40 | 'options' | 'OPTIONS'
41 | 'post' | 'POST'
42 | 'put' | 'PUT'
43 | 'patch' | 'PATCH'
44 | 'purge' | 'PURGE'
45 | 'link' | 'LINK'
46 | 'unlink' | 'UNLINK';
47
48export type ResponseType =
49 | 'arraybuffer'
50 | 'blob'
51 | 'document'
52 | 'json'
53 | 'text'
54 | 'stream';
55
56export interface TransitionalOptions {
57 silentJSONParsing?: boolean;
58 forcedJSONParsing?: boolean;
59 clarifyTimeoutError?: boolean;
60}
61
62export interface AxiosRequestConfig<D = any> {
63 url?: string;
64 method?: Method;
65 baseURL?: string;
66 transformRequest?: AxiosRequestTransformer | AxiosRequestTransformer[];
67 transformResponse?: AxiosResponseTransformer | AxiosResponseTransformer[];
68 headers?: AxiosRequestHeaders;
69 params?: any;
70 paramsSerializer?: (params: any) => string;
71 data?: D;
72 timeout?: number;
73 timeoutErrorMessage?: string;
74 withCredentials?: boolean;
75 adapter?: AxiosAdapter;
76 auth?: AxiosBasicCredentials;
77 responseType?: ResponseType;
78 xsrfCookieName?: string;
79 xsrfHeaderName?: string;
80 onUploadProgress?: (progressEvent: any) => void;
81 onDownloadProgress?: (progressEvent: any) => void;
82 maxContentLength?: number;
83 validateStatus?: ((status: number) => boolean) | null;
84 maxBodyLength?: number;
85 maxRedirects?: number;
86 socketPath?: string | null;
87 httpAgent?: any;
88 httpsAgent?: any;
89 proxy?: AxiosProxyConfig | false;
90 cancelToken?: CancelToken;
91 decompress?: boolean;
92 transitional?: TransitionalOptions;
93 signal?: AbortSignal;
94 insecureHTTPParser?: boolean;
95}
96
97export interface HeadersDefaults {
98 common: AxiosRequestHeaders;
99 delete: AxiosRequestHeaders;
100 get: AxiosRequestHeaders;
101 head: AxiosRequestHeaders;
102 post: AxiosRequestHeaders;
103 put: AxiosRequestHeaders;
104 patch: AxiosRequestHeaders;
105 options?: AxiosRequestHeaders;
106 purge?: AxiosRequestHeaders;
107 link?: AxiosRequestHeaders;
108 unlink?: AxiosRequestHeaders;
109}
110
111export interface AxiosDefaults<D = any> extends Omit<AxiosRequestConfig<D>, 'headers'> {
112 headers: HeadersDefaults;
113}
114
115export interface AxiosResponse<T = any, D = any> {
116 data: T;
117 status: number;
118 statusText: string;
119 headers: AxiosResponseHeaders;
120 config: AxiosRequestConfig<D>;
121 request?: any;
122}
123
124export interface AxiosError<T = any, D = any> extends Error {
125 config: AxiosRequestConfig<D>;
126 code?: string;
127 request?: any;
128 response?: AxiosResponse<T, D>;
129 isAxiosError: boolean;
130 toJSON: () => object;
131}
132
133export interface AxiosPromise<T = any> extends Promise<AxiosResponse<T>> {
134}
135
136export interface CancelStatic {
137 new (message?: string): Cancel;
138}
139
140export interface Cancel {
141 message: string;
142}
143
144export interface Canceler {
145 (message?: string): void;
146}
147
148export interface CancelTokenStatic {
149 new (executor: (cancel: Canceler) => void): CancelToken;
150 source(): CancelTokenSource;
151}
152
153export interface CancelToken {
154 promise: Promise<Cancel>;
155 reason?: Cancel;
156 throwIfRequested(): void;
157}
158
159export interface CancelTokenSource {
160 token: CancelToken;
161 cancel: Canceler;
162}
163
164export interface AxiosInterceptorManager<V> {
165 use<T = V>(onFulfilled?: (value: V) => T | Promise<T>, onRejected?: (error: any) => any): number;
166 eject(id: number): void;
167}
168
169export class Axios {
170 constructor(config?: AxiosRequestConfig);
171 defaults: AxiosDefaults;
172 interceptors: {
173 request: AxiosInterceptorManager<AxiosRequestConfig>;
174 response: AxiosInterceptorManager<AxiosResponse>;
175 };
176 getUri(config?: AxiosRequestConfig): string;
177 request<T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R>;
178 get<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
179 delete<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
180 head<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
181 options<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
182 post<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
183 put<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
184 patch<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
185}
186
187export interface AxiosInstance extends Axios {
188 (config: AxiosRequestConfig): AxiosPromise;
189 (url: string, config?: AxiosRequestConfig): AxiosPromise;
190}
191
192export interface AxiosStatic extends AxiosInstance {
193 create(config?: AxiosRequestConfig): AxiosInstance;
194 Cancel: CancelStatic;
195 CancelToken: CancelTokenStatic;
196 Axios: typeof Axios;
197 readonly VERSION: string;
198 isCancel(value: any): boolean;
199 all<T>(values: Array<T | Promise<T>>): Promise<T[]>;
200 spread<T, R>(callback: (...args: T[]) => R): (array: T[]) => R;
201 isAxiosError(payload: any): payload is AxiosError;
202}
203
204declare const axios: AxiosStatic;
205
206export default axios;