import { Cache } from '../cache/Cache'; import { Transport, TransportType } from '../transports/Transport'; import { CallRequestDTO } from '../CallRequestDTO'; import { CallResponseDTO } from '../CallResponseDTO'; import { CallResponseInterceptor } from '../CallResponseInterceptor'; import { CallRequestInterceptor } from '../CallRequestInterceptor'; import { RPCClientIdentity } from '../RPCClientIdentity'; import { UnsubscribeCallback } from '../types'; import { CallOptions, RPCClientOptions } from '../RPCClient'; import { CallRequestTransportError, CallRequestTransportTimeoutError } from '../transports/errors'; export interface ClientManagerOptions { cache?: Cache; deadlineMs: number; onTransportRequestError?: (error: Error | CallRequestTransportError | CallRequestTransportTimeoutError, transportType: TransportType, request: CallRequestDTO) => void; requestInterceptor?: CallRequestInterceptor; responseInterceptor?: CallResponseInterceptor; transports: Transport[]; transportOptions?: RPCClientOptions['transportOptions']; } export interface ClientManager { addResponseInterceptor(interceptor: CallResponseInterceptor): UnsubscribeCallback; addRequestInterceptor(interceptor: CallRequestInterceptor): UnsubscribeCallback; clearCache(request?: CallRequestDTO): void; getCachedResponse(request: CallRequestDTO): CallResponseDTO | undefined; getInFlightCallCount(): number; manageClientRequest(request: CallRequestDTO, opts?: CallOptions): Promise; setIdentity(identity?: RPCClientIdentity): void; } export declare class ClientManager implements ClientManager { readonly options: ClientManagerOptions; private cache?; private cleanupIntervalId?; private inflightCallsByKey; private interceptors; private transports; constructor(options: ClientManagerOptions); private cleanupStaleEntries; addResponseInterceptor: (interceptor: CallResponseInterceptor) => () => void; addRequestInterceptor: (interceptor: CallRequestInterceptor) => () => void; clearCache: (request?: CallRequestDTO) => void; getCachedResponse: (request: CallRequestDTO) => CallResponseDTO | undefined; getInFlightCallCount: () => number; manageClientRequest: (originalRequest: CallRequestDTO, opts?: CallOptions) => Promise>; setIdentity: (identity?: RPCClientIdentity) => void; private interceptRequestMutator; private interceptResponseMutator; private sendRequestWithTransport; destroy: () => void; } //# sourceMappingURL=ClientManager.d.ts.map