import { AxiosInstance } from 'axios'; import { MethodType } from './const/methods.js'; import { IOpenApiAxiosOptions, OptionsType, ValidStatusType } from './types/options.js'; import { GetApiResponse } from './types/response.js'; import { RouteResponsesByStatusCode, RoutesForMethod, SchemaType } from './types/schemeTypes.js'; import { IsNullable } from './types/utils.js'; /** * @description OpenApiAxios class is a wrapper around Axios that provides methods to handle API requests * and responses based on OpenAPI specifications. * * @template Schema - The OpenAPI schema type. * @template ClassValidStatus - The type that configures the error handling strategy. */ export declare class OpenApiAxios { private axios; private opt; /** * @description Creates an instance of OpenApiAxios. * * @param axios - The Axios instance to use for requests. * @param options - Configuration options for the OpenApiAxios instance. */ constructor(axios: AxiosInstance, options: IOpenApiAxiosOptions); get: , MethodValidStatus extends ValidStatusType | undefined = undefined>(...args: import('./types/utils.js').NotNever, "query">> extends infer T ? T extends import('./types/utils.js').NotNever, "query">> ? T extends true ? [path: Route, options: OptionsType] : [path: Route, options?: OptionsType | undefined] : never : never) => Promise extends true ? ClassValidStatus : NonNullable, RouteResponsesByStatusCode>>>; head: , MethodValidStatus extends ValidStatusType | undefined = undefined>(...args: import('./types/utils.js').NotNever, "query">> extends infer T ? T extends import('./types/utils.js').NotNever, "query">> ? T extends true ? [path: Route, options: OptionsType] : [path: Route, options?: OptionsType | undefined] : never : never) => Promise extends true ? ClassValidStatus : NonNullable, RouteResponsesByStatusCode>>>; delete: , MethodValidStatus extends ValidStatusType | undefined = undefined>(...args: import('./types/utils.js').NotNever, "query">> extends infer T ? T extends import('./types/utils.js').NotNever, "query">> ? T extends true ? [path: Route, options: OptionsType] : [path: Route, options?: OptionsType | undefined] : never : never) => Promise extends true ? ClassValidStatus : NonNullable, RouteResponsesByStatusCode>>>; options: , MethodValidStatus extends ValidStatusType | undefined = undefined>(...args: import('./types/utils.js').NotNever, "query">> extends infer T ? T extends import('./types/utils.js').NotNever, "query">> ? T extends true ? [path: Route, options: OptionsType] : [path: Route, options?: OptionsType | undefined] : never : never) => Promise extends true ? ClassValidStatus : NonNullable, RouteResponsesByStatusCode>>>; put: , MethodValidStatus extends ValidStatusType | undefined>(...args: import('./types/utils.js').NotNever, "query">> extends infer T ? T extends import('./types/utils.js').NotNever, "query">> ? T extends true ? [path: Route, body: import('./types/utils.js').NotNever> extends true ? import('./types/schemeTypes.js').RouteRequestBody : undefined, options: OptionsType] : (import('./types/utils.js').NotNever, "query">> extends infer T_1 ? T_1 extends import('./types/utils.js').NotNever, "query">> ? T_1 extends true ? true : import('./types/utils.js').NotNever> : never : never) extends infer T_2 ? T_2 extends (import('./types/utils.js').NotNever, "query">> extends infer T_3 ? T_3 extends import('./types/utils.js').NotNever, "query">> ? T_3 extends true ? true : import('./types/utils.js').NotNever> : never : never) ? T_2 extends true ? [path: Route, body: import('./types/utils.js').NotNever> extends true ? import('./types/schemeTypes.js').RouteRequestBody : undefined, options?: OptionsType | undefined] : [path: Route, body?: (import('./types/utils.js').NotNever> extends true ? import('./types/schemeTypes.js').RouteRequestBody : undefined) | undefined, options?: OptionsType | undefined] : never : never : never : never) => Promise extends true ? ClassValidStatus : NonNullable, RouteResponsesByStatusCode>>>; post: , MethodValidStatus extends ValidStatusType | undefined>(...args: import('./types/utils.js').NotNever, "query">> extends infer T ? T extends import('./types/utils.js').NotNever, "query">> ? T extends true ? [path: Route, body: import('./types/utils.js').NotNever> extends true ? import('./types/schemeTypes.js').RouteRequestBody : undefined, options: OptionsType] : (import('./types/utils.js').NotNever, "query">> extends infer T_1 ? T_1 extends import('./types/utils.js').NotNever, "query">> ? T_1 extends true ? true : import('./types/utils.js').NotNever> : never : never) extends infer T_2 ? T_2 extends (import('./types/utils.js').NotNever, "query">> extends infer T_3 ? T_3 extends import('./types/utils.js').NotNever, "query">> ? T_3 extends true ? true : import('./types/utils.js').NotNever> : never : never) ? T_2 extends true ? [path: Route, body: import('./types/utils.js').NotNever> extends true ? import('./types/schemeTypes.js').RouteRequestBody : undefined, options?: OptionsType | undefined] : [path: Route, body?: (import('./types/utils.js').NotNever> extends true ? import('./types/schemeTypes.js').RouteRequestBody : undefined) | undefined, options?: OptionsType | undefined] : never : never : never : never) => Promise extends true ? ClassValidStatus : NonNullable, RouteResponsesByStatusCode>>>; patch: , MethodValidStatus extends ValidStatusType | undefined>(...args: import('./types/utils.js').NotNever, "query">> extends infer T ? T extends import('./types/utils.js').NotNever, "query">> ? T extends true ? [path: Route, body: import('./types/utils.js').NotNever> extends true ? import('./types/schemeTypes.js').RouteRequestBody : undefined, options: OptionsType] : (import('./types/utils.js').NotNever, "query">> extends infer T_1 ? T_1 extends import('./types/utils.js').NotNever, "query">> ? T_1 extends true ? true : import('./types/utils.js').NotNever> : never : never) extends infer T_2 ? T_2 extends (import('./types/utils.js').NotNever, "query">> extends infer T_3 ? T_3 extends import('./types/utils.js').NotNever, "query">> ? T_3 extends true ? true : import('./types/utils.js').NotNever> : never : never) ? T_2 extends true ? [path: Route, body: import('./types/utils.js').NotNever> extends true ? import('./types/schemeTypes.js').RouteRequestBody : undefined, options?: OptionsType | undefined] : [path: Route, body?: (import('./types/utils.js').NotNever> extends true ? import('./types/schemeTypes.js').RouteRequestBody : undefined) | undefined, options?: OptionsType | undefined] : never : never : never : never) => Promise extends true ? ClassValidStatus : NonNullable, RouteResponsesByStatusCode>>>; /** * @description Generates a URI for a given API endpoint, including query parameters. * * @param method - The HTTP method to use. * @param path - The API route. * @param options - Additional options for the request. * @returns The generated URI as a string. */ getUri>(method: Method, path: Route, options?: OptionsType): Promise; /** * @description Prepares the options and URL for an API request. * * @param path - The API route. * @param options - Additional options for the request. * @returns An object containing the prepared URL string and new options. */ private prepareOptions; /** * @description Prepares the API response based on the valid status type. * * @param response - The Axios response promise. * @param options - Options for the request. * @returns A promise that resolves to the processed API response. */ private prepareResponse; /** * @description Converts OpenAPI options to Axios request options. * * @param options - The options to convert. * @returns The converted Axios request configuration. */ private optionsToAxiosOptions; /** * @description Creates a fetcher method for HTTP methods that do not have a request body (e.g., GET, DELETE). * * @param method - The HTTP method to create a fetcher for. * @returns A function that performs the API request. */ private factoryWithoutBody; /** * @description Creates a fetcher method for HTTP methods that have a request body (e.g., POST, PUT). * * @param method - The HTTP method to create a fetcher for. * @returns A function that performs the API request. */ private factoryWithBody; } export type { GetApiResponse, ApiResponseAll, ApiResponseFetch, ApiResponseAxios, } from './types/response.js'; export type { RouteResponsesByStatusCode, RoutesForMethod, SchemaType, } from './types/schemeTypes.js'; export type { MethodType } from './const/methods.js';