import { Batch, RawBatchResponse } from './Batch'; export declare type JsonRpcRequest = { jsonrpc: string; method: string; params?: any; id: number; }; export declare type JsonRpcResponse = { jsonrpc: string; result?: any; error?: any; }; export interface Transport { request(req: Array): Promise>; } export declare class JsonRpcError extends Error { code: number; constructor(error: { code: number; message: string; }); } export interface JsonRpc { execute(batch: Batch): Promise; call(method: string, params: any): Promise; batch(): Batch; } export declare abstract class AbstractJsonRpc implements JsonRpc { execute(batch: Batch): Promise; call(method: string, params: any): Promise; batch(): Batch; } export declare class DefaultJsonRpc extends AbstractJsonRpc implements JsonRpc { transport: Transport; constructor(transport: Transport); execute(batch: Batch): Promise; } export declare class FailingJsonRpc extends AbstractJsonRpc implements JsonRpc { execute(batch: Batch): Promise; }