import { AxiosRequestConfig, AxiosResponse, Method } from "axios"; import KumosearchError from "./Errors/KumosearchError"; import Configuration, { NodeConfiguration } from "./Configuration"; interface Node extends NodeConfiguration { isHealthy: boolean; index: string | number; } export default class ApiCall { private configuration; private readonly apiKey; private readonly nodes; private readonly nearestNode; private readonly connectionTimeoutSeconds; private readonly healthcheckIntervalSeconds; private readonly retryIntervalSeconds; private readonly sendApiKeyAsQueryParam?; private readonly numRetriesPerRequest; private readonly additionalUserHeaders?; private readonly logger; private currentNodeIndex; constructor(configuration: Configuration); get(endpoint: string, queryParameters?: any, { abortSignal, responseType, }?: { abortSignal?: any; responseType?: AxiosRequestConfig["responseType"] | undefined; }): Promise; delete(endpoint: string, queryParameters?: any): Promise; post(endpoint: string, bodyParameters?: any, queryParameters?: any, additionalHeaders?: any): Promise; put(endpoint: string, bodyParameters?: any, queryParameters?: any): Promise; patch(endpoint: string, bodyParameters?: any, queryParameters?: any): Promise; performRequest(requestType: Method, endpoint: string, { queryParameters, bodyParameters, additionalHeaders, abortSignal, responseType, skipConnectionTimeout, }: { queryParameters?: any; bodyParameters?: any; additionalHeaders?: any; abortSignal?: any; responseType?: AxiosRequestConfig["responseType"] | undefined; skipConnectionTimeout?: boolean; }): Promise; getNextNode(requestNumber?: number): Node; nodeDueForHealthcheck(node: any, requestNumber?: number): boolean; initializeMetadataForNodes(): void; setNodeHealthcheck(node: any, isHealthy: any): void; uriFor(endpoint: string, node: any): string; defaultHeaders(): any; timer(seconds: any): Promise; customErrorForResponse(response: AxiosResponse, messageFromServer: string): KumosearchError; } export {};