import { JSONRPCErrorResponse, JSONRPCID, JSONRPCParams, JSONRPCRequest, JSONRPCResponse } from "./models"; export type SendRequest = (payload: any, clientParams: ClientParams) => PromiseLike | void; export type CreateID = () => JSONRPCID; export interface JSONRPCRequester { request(method: string, params?: JSONRPCParams, clientParams?: ClientParams): PromiseLike; requestAdvanced(request: JSONRPCRequest, clientParams?: ClientParams): PromiseLike; requestAdvanced(request: JSONRPCRequest[], clientParams?: ClientParams): PromiseLike; } export declare class JSONRPCClient implements JSONRPCRequester { private _send; private createID?; private idToResolveMap; private id; constructor(_send: SendRequest, createID?: CreateID | undefined); private _createID; timeout(delay: number, overrideCreateJSONRPCErrorResponse?: (id: JSONRPCID) => JSONRPCErrorResponse): JSONRPCRequester; request(method: string, params: JSONRPCParams, clientParams: ClientParams): PromiseLike; private requestWithID; requestAdvanced(request: JSONRPCRequest, clientParams: ClientParams): PromiseLike; requestAdvanced(request: JSONRPCRequest[], clientParams: ClientParams): PromiseLike; notify(method: string, params: JSONRPCParams, clientParams: ClientParams): void; send(payload: any, clientParams: ClientParams): Promise; rejectAllPendingRequests(message: string): void; receive(responses: JSONRPCResponse | JSONRPCResponse[]): void; }