import { AxiosRequestConfig, AxiosResponse, RawAxiosRequestConfig, RawAxiosRequestHeaders } from "axios"; import { WindowHapiModuleName, WindowHapiSubmoduleName } from "../common/enums"; import { WindowHapiAPIATS } from "../ats/api.types"; import { WindowHapiAPICampaign } from "../campaign/api.types"; import { WindowHapiAPIContract } from "../contract/api.types"; import { WindowHapiAPIProduct } from "../product/api.types"; import { WindowHapiAPIWallet } from "../wallet/api.types"; import { WindowHapiClassInterface, WindowHapiModuleWithConstructorArgs } from "./window"; import { WindowHapiLogger } from "../common/logger/types"; import { ATSUserTokenResponse } from "../ats"; import { PartialRecord } from "../common"; import { WindowHapiAPIExperimental } from "../experimental"; import { IAxiosRetryConfig } from "axios-retry"; import { AxiosInterceptorOptions } from "axios"; export type WindowHapiAPIModule = { propertiesThatShouldNotBeDocumented: string[]; logger: WindowHapiLogger; configs: ModuleConfig; setBaseURL: (url: string) => void; setBaseConfig: (config: Record) => void; setResourceConfig: (resourceKey: keyof ModuleConfig, config: RawAxiosRequestConfig) => void; abortControllers: PartialRecord>; namedAbortControllers?: Record>; } & ModuleRequests; export type HapiRequestConfig = Omit, "headers"> & { headers?: any; }; export type WindowHapiAPIOnChangeJWTTokenHandler = (newToken: string, oldToken?: string) => string; export type WindowHapiAPIRefreshJWTTokenHandler = () => Promise; export type WindowHapiAPIValidateJWTTokenHandler = () => Promise; export type WindowHapiAPIOnAfterResponseFullfilledHandler = (value: AxiosResponse) => AxiosResponse | Promise; export type WindowHapiAPIOnAfterResponseRejectedHandler = (error: any) => any; export type WindowHapiAPIModules = { [WindowHapiModuleName.contract]: WindowHapiAPIContract; [WindowHapiModuleName.wallet]: WindowHapiAPIWallet; [WindowHapiModuleName.product]: WindowHapiAPIProduct; [WindowHapiModuleName.campaign]: WindowHapiAPICampaign; [WindowHapiModuleName.ats]: WindowHapiAPIATS; [WindowHapiModuleName.experimental]: WindowHapiAPIExperimental; }; export type WindowHapiModuleConfig = { key: keyof WindowHapiAPIModules; configs: Record; }; export type WindowHapiAPIFlattenedModuleConfig = { key: string; config: RawAxiosRequestConfig; }; export type WindowHapiAPI = WindowHapiModuleWithConstructorArgs<{ setClassBaseConfig: (klass: any, config: Record) => void; setClassResourceConfig: (klass: any, resourceKey: string, config: RawAxiosRequestConfig) => void; propertiesThatShouldNotBeDocumented: string[]; mergePropertiesThatShouldNotBeDocumented: (klass: any) => void; responseInterceptorId: number | null; responseInterceptorOptions: AxiosInterceptorOptions | null; onAfterResponseFulfilledHandler: WindowHapiAPIOnAfterResponseFullfilledHandler | null; onAfterResponseRejectedHandler: WindowHapiAPIOnAfterResponseRejectedHandler | null; retryOptions: IAxiosRetryConfig; request: , D = any>(config: Partial>) => Promise; requestAbortable: , ModuleRequests, ModuleConfig, T = any, R = AxiosResponse, D = any>(moduleKlass: WindowHapiAPIModule, functionName: keyof ModuleRequests, config: Partial>, abortKey?: string) => Promise; jwtHeaderKey: string; jwtHeaderValuePrefix: string; jwtRefreshIntervalInSeconds: number; setJWTRefreshIntervalInSeconds: (seconds: number) => void; jwtRefreshInterval: number | undefined; jwtTokenRefreshCallback: WindowHapiAPIOnChangeJWTTokenHandler | undefined; onJWTTokenRefresh: (token: string) => void; refreshJWTToken: WindowHapiAPIRefreshJWTTokenHandler; validateJWTToken: WindowHapiAPIValidateJWTTokenHandler; baseURL: string; setBaseURL: (url: string) => void; setBaseConfig: (params: Record>) => void; baseTimeout: number; setBaseTimeout: (timeout: number) => void; baseHeaders: RawAxiosRequestHeaders; headers: RawAxiosRequestHeaders; setHeaders: (headers: RawAxiosRequestHeaders) => void; baseRequestConfig: RawAxiosRequestConfig; makeElementsAPIRequest: (method: string, endpoint: string, data?: any, params?: Record) => Promise; makeSDKUsageElementsAPIRequest: (moduleName: WindowHapiSubmoduleName, functionName: string, functionType?: string) => void; modules: WindowHapiAPIModules; addResponseInterceptorToAxiosInstance: () => void; removeResponseInterceptorFromAxiosInstance: (interceptorId: number) => void; setJWTHeaderValuePrefix: (prefix: string) => void; setJWTHeaderKey: (key: string) => void; getModuleConfigs: () => WindowHapiModuleConfig[]; getFlattenedModuleConfigs: () => WindowHapiAPIFlattenedModuleConfig[]; getFlattenedModuleConfigURLs: () => string[]; getFlattenedModuleConfigURLPaths: () => string[]; } & WindowHapiAPIModules, { readonly core: WindowHapiClassInterface; }>; //# sourceMappingURL=api.types.d.ts.map