import { JSONRPCRequest, JSONRPCResponse, JSONRPCParams, JSONRPCID, JSONRPCErrorResponse, ErrorListener } from "./models"; export type SimpleJSONRPCMethod = (params: JSONRPCParams, serverParams: ServerParams) => any; export type JSONRPCMethod = (request: JSONRPCRequest, serverParams: ServerParams) => JSONRPCResponsePromise; export type JSONRPCResponsePromise = PromiseLike; export type JSONRPCServerMiddlewareNext = (request: JSONRPCRequest, serverParams: ServerParams) => JSONRPCResponsePromise; export type JSONRPCServerMiddleware = (next: JSONRPCServerMiddlewareNext, request: JSONRPCRequest, serverParams: ServerParams) => JSONRPCResponsePromise; export interface JSONRPCServerOptions { errorListener?: ErrorListener; } export declare class JSONRPCServer { private nameToMethodDictionary; private middleware; private readonly errorListener; mapErrorToJSONRPCErrorResponse: (id: JSONRPCID, error: any) => JSONRPCErrorResponse; constructor(options?: JSONRPCServerOptions); hasMethod(name: string): boolean; addMethod(name: string, method: SimpleJSONRPCMethod): void; removeMethod(name: string): void; private toJSONRPCMethod; addMethodAdvanced(name: string, method: JSONRPCMethod): void; receiveJSON(json: string, serverParams?: ServerParams): PromiseLike; private tryParseRequestJSON; receive(request: JSONRPCRequest, serverParams?: ServerParams): PromiseLike; receive(request: JSONRPCRequest | JSONRPCRequest[], serverParams?: ServerParams): PromiseLike; private receiveMultiple; private receiveSingle; applyMiddleware(...middlewares: JSONRPCServerMiddleware[]): void; private combineMiddlewares; private middlewareReducer; private callMethod; private mapErrorToJSONRPCErrorResponseIfNecessary; }