/** * Flowtype definitions for fetchData * Generated by Flowgen from a Typescript Definition * Flowgen v1.21.0 */ import { AxiosRequestConfig } from "axios"; import { Api } from "@yoroi/types"; declare module "axios" { declare interface AxiosRequestConfig { metadata?: { startTime: number, duration: number, ... }; } } declare type GetRequestConfig = { url: string, method?: "get", headers?: { [key: string]: string, ... }, ... }; declare type OtherRequestConfig = { url: string, method: "post" | "put" | "delete", data?: D, headers?: { [key: string]: string, ... }, ... }; export type RequestConfig = GetRequestConfig | OtherRequestConfig; export type FetchData = ( config: RequestConfig, fetcherConfig?: AxiosRequestConfig ) => Promise>; /** * Performs an HTTP request using Axios based on the specified configuration. * This function simplifies making HTTP requests by handling different * request methods and their respective data and headers. * @param config - The configuration object for the request. * This includes the URL, HTTP method, optional data, and headers. * The type of `config` varies based on the HTTP method: * - For `GET` requests, `data` should not be provided. * - For `POST`, `PUT`, and `DELETE` requests, `data` is optional. * @returns A `Promise` that resolves to the response data on a successful request * or an error object on failure. The error object includes the HTTP status * code and error message. * @template - The expected type of the response data. * @template - The type of the data to be sent with the request (for `POST`, `PUT`, `DELETE`). * @example ```typescript * // Example of a GET request * fetchData<{ someDataType }>({ * url: 'https://example.com/data', * }).then(response => { * // Handle response * }).catch(error => { * // Handle error * }) * ``` * @example ```typescript * // Example of a POST request with data * fetchData<{ someDataType }, { somePayloadType }>({ * url: 'https://example.com/data', * method: 'post', * data: {...somePayload} * }).then(response => { * // Handle response * }).catch(error => { * // Handle error * }) * ``` */ declare export var fetchData: FetchData;