import { CallRequestDTO } from './CallRequestDTO'; import { CallResponseDTO } from './CallResponseDTO'; import { ClientManagerOptions } from './manager/ClientManager'; import { HTTPTransport } from './transports/HTTPTransport'; import { WebSocketTransport } from './transports/WebSocketTransport'; import { CallResponseInterceptor } from './CallResponseInterceptor'; import { CallRequestInterceptor } from './CallRequestInterceptor'; import { Transport, TransportType } from './transports/Transport'; import { RPCClientIdentity } from './RPCClientIdentity'; import { UnsubscribeCallback } from './types'; export interface CallOptions { timeout?: number; transport?: 'http' | 'websocket' | TransportType; } export interface RPCClient { call(request: CallRequestDTO | string, args?: Args, opts?: CallOptions): Promise>; clearCache(request?: CallRequestDTO): void; getCallCache(request: CallRequestDTO | string, args?: Args): CallResponseDTO | undefined; getIdentity(): RPCClientIdentity | undefined; getInFlightCallCount(): number; getWebSocketConnected(): boolean; makeProcedure(request: CallRequestDTO | string): (args?: any) => Promise>; registerResponseInterceptor(responseInterceptor: CallResponseInterceptor): UnsubscribeCallback; registerRequestInterceptor(requestInterceptor: CallRequestInterceptor): UnsubscribeCallback; registerWebSocketConnectionStatusChangeListener(cb: (connected: boolean) => void): UnsubscribeCallback; sendClientMessageToServer(msg: any): void; setIdentity(identity?: RPCClientIdentity): void; setIdentityMetadata(metadata?: Record): void; subscribe(filter: { request: CallRequestDTO | string; args?: any; }, handler: (response: CallResponseDTO) => void): UnsubscribeCallback; subscribeToServerMessages(handler: (msg: any) => void): UnsubscribeCallback; transports(): { http: HTTPTransport | undefined; websocket: WebSocketTransport | undefined; }; unsubscribe(filter: { request: CallRequestDTO | string; args?: any; }, handler: (response: CallResponseDTO) => void): void; unsubscribeFromServerMessages(handler: (msg: any) => void): void; destroy(): void; } export interface RPCClientOptions { cacheType?: 'browser' | 'memory'; cacheMaxAgeMs?: number; deadlineMs?: number; hosts?: { http?: string; websocket?: string; }; onTransportRequestError?: ClientManagerOptions['onTransportRequestError']; onWebSocketConnectionStatusChange?: (connected: boolean) => void; requestInterceptor?: CallRequestInterceptor; responseInterceptor?: CallResponseInterceptor; transports?: { http?: Transport; websocket?: Transport; }; transportOptions?: { preferredTransport?: TransportType; websocket?: { autoConnect?: boolean; }; }; } export declare class RPCClient implements RPCClient { readonly options: RPCClientOptions; static DEFAULT_DEADLINE_MS: number; private callManager; private identity; private readonly httpTransport?; private readonly webSocketTransport?; private webSocketConnectionChangeListeners; private vent; constructor(options: RPCClientOptions); private onWebSocketConnectionStatusChange; call: (request: CallRequestDTO | string, args?: Args, opts?: CallOptions) => Promise>; clearCache: (request?: CallRequestDTO) => void; getCallCache: (request: CallRequestDTO | string, args?: Args) => CallResponseDTO | undefined; getIdentity: () => RPCClientIdentity | undefined; getInFlightCallCount: () => number; getWebSocketConnected: () => boolean; makeProcedure: (request: CallRequestDTO | string) => ((args?: any) => Promise>); registerResponseInterceptor: (responseInterceptor: CallResponseInterceptor) => UnsubscribeCallback; registerRequestInterceptor: (requestInterceptor: CallRequestInterceptor) => UnsubscribeCallback; registerWebSocketConnectionStatusChangeListener: (cb: (connected: boolean) => void) => () => void; sendClientMessageToServer: (msg: any) => void; setIdentity: (identity?: RPCClientIdentity) => void; setIdentityMetadata: (metadata?: Record) => void; transports: () => { http: HTTPTransport | undefined; websocket: WebSocketTransport | undefined; }; destroy: () => void; } //# sourceMappingURL=RPCClient.d.ts.map