import { Observable } from 'rxjs'; import { RestServiceConfig } from '../interfaces/services-config'; import { RequestData } from '../interfaces/request-data'; import { AxiosRetriableExecutor } from '../lib/axios-retriable-executor'; import { ICredentialsManager } from './security/credentials-factory'; export declare type ClientRequestData = { method: string; url: string; auth?: any; data?: any; params?: object; headers: object; }; export declare class RestClient { private config; private axiosRetryExecutor; credentialsManager?: ICredentialsManager | undefined; private options; constructor(config: RestServiceConfig, axiosRetryExecutor?: AxiosRetriableExecutor, credentialsManager?: ICredentialsManager | undefined); /** * PUBLIC METHOD * Starts the execution of a request based on a single request data configuration * @param request RequestData * @returns Observable<> */ call(request: RequestData): Observable; confAuth(opt: ClientRequestData): any; getConfig(): RestServiceConfig; /** * PRIVATE METHOD * Handle retries configured by the client in case of error within the request * @param context: RestClient * @returns (params: any[]): void */ private handleRetry; /** * PRIVATE METHOD * Sets the url for a request * @param request: RequestData * @returns string */ private setUpUrl; /** * PRIVATE METHOD * Sets the query params in url for a request * @param request: RequestData * @param url: string * @returns string */ private setUpQueryUrl; /** * PRIVATE METHOD * Build the url for a request * @param request: RequestData * @returns object */ private getOptionsConfig; /** * PRIVATE METHOD * Notify when the request started ends * @param request: RequestData * @param options: object * @returns object */ private notifyRequestFinished; }