import { ILogger } from "@js-soft/logging-abstractions"; import { AxiosInstance, AxiosRequestConfig } from "axios"; import { AgentOptions as HTTPAgentOptions } from "http"; import { AgentOptions as HTTPSAgentOptions } from "https"; import { ICorrelator } from "../ICorrelator"; import { ClientResult } from "./ClientResult"; import { IPaginationDataSource, Paginator, PaginatorPercentageCallback } from "./Paginator"; export declare class RestPaginationDataSource implements IPaginationDataSource { private readonly client; private readonly path; private readonly args; constructor(client: RESTClient, path: string, args: any); getPage(pageNumber: number): Promise; } export declare enum RESTClientLogDirective { LogNone = 0, LogRequest = 1, LogResponse = 2, LogAll = 3 } export interface IRESTClientConfig { platformClientId: string; platformClientSecret: string; platformTimeout: number; platformMaxRedirects: number; platformAdditionalHeaders?: Record; httpAgentOptions: HTTPAgentOptions; httpsAgentOptions: HTTPSAgentOptions; debug: boolean; baseUrl: string; } export declare class RESTClient { protected readonly config: IRESTClientConfig; private readonly correlator?; protected _logger: ILogger; protected _logDirective: RESTClientLogDirective; protected axiosInstance: AxiosInstance; logRequest(): boolean; logResponse(): boolean; private generateRequestId; constructor(config: IRESTClientConfig, correlator?: ICorrelator | undefined, requestConfig?: AxiosRequestConfig); private addAxiosLoggingInterceptors; private getResult; private getPaginator; get(path: string, params?: any, config?: AxiosRequestConfig): Promise>; getPaged(path: string, params?: any, config?: AxiosRequestConfig, progessCallback?: PaginatorPercentageCallback): Promise>>; post(path: string, data: any, params?: any, config?: AxiosRequestConfig): Promise>; postMultipart(path: string, data: any, config?: AxiosRequestConfig): Promise>; put(path: string, data: any, config?: AxiosRequestConfig): Promise>; patch(path: string, data?: any, config?: AxiosRequestConfig): Promise>; delete(path: string, config?: AxiosRequestConfig): Promise>; download(path: string, config?: AxiosRequestConfig): Promise>; private extractPlatformParameters; private _logResponse; } //# sourceMappingURL=RESTClient.d.ts.map