import type { AxiosResponse, AxiosRequestConfig } from 'axios'; import type { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types'; export type { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types'; /** * Type alias for OpenAPI document. We only support v3 */ export declare type Document = OpenAPIV3.Document | OpenAPIV3_1.Document; export declare type Server = OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject; export declare type ParameterObject = OpenAPIV3.ParameterObject | OpenAPIV3_1.ParameterObject; /** * OpenAPI allowed HTTP methods */ export declare enum HttpMethod { Get = "get", Put = "put", Post = "post", Patch = "patch", Delete = "delete", Options = "options", Head = "head", Trace = "trace" } /** * OpenAPI parameters "in" */ export declare enum ParamType { Query = "query", Header = "header", Path = "path", Cookie = "cookie" } /** * Operation method spec */ export declare type ImplicitParamValue = string | number; export interface ExplicitParamValue { value: string | number; name: string; in?: ParamType | string; } export interface UnknownParamsObject { [parameter: string]: ImplicitParamValue | ImplicitParamValue[]; } export declare type ParamsArray = ExplicitParamValue[]; export declare type SingleParam = ImplicitParamValue; export declare type Parameters = ParamsObject | ParamsArray | SingleParam; export declare type RequestPayload = any; export declare type OperationMethodArguments = [Parameters?, RequestPayload?, AxiosRequestConfig?]; export declare type OperationResponse = Promise>; export declare type UnknownOperationMethod = (parameters?: Parameters, data?: RequestPayload, config?: AxiosRequestConfig) => OperationResponse; export interface UnknownOperationMethods { [operationId: string]: UnknownOperationMethod; } /** * Generic request config object */ export interface RequestConfig { method: HttpMethod; url: string; path: string; pathParams: { [key: string]: string; }; query: { [key: string]: string | string[]; }; queryString: string; headers: AxiosRequestConfig['headers']; cookies: { [cookie: string]: string; }; payload?: RequestPayload; } /** * Operation object extended with path and method for easy looping */ export interface Operation extends OpenAPIV3.OperationObject { path: string; method: HttpMethod; } /** * A dictionary of paths and their methods */ export interface UnknownPathsDictionary { [path: string]: { [method in HttpMethod]?: UnknownOperationMethod; }; }