///
import { EventEmitter } from "events";
import { RequestArguments, IJsonRpcProvider, IJsonRpcConnection, JsonRpcRequest, JsonRpcPayload } from "@json-rpc-tools/utils";
import { HttpConnection } from "./http";
import { WsConnection } from "./ws";
export declare class JsonRpcProvider extends IJsonRpcProvider {
events: EventEmitter;
connection: IJsonRpcConnection;
constructor(connection: string | IJsonRpcConnection);
connect(connection?: string | IJsonRpcConnection): Promise;
disconnect(): Promise;
on(event: string, listener: any): void;
once(event: string, listener: any): void;
off(event: string, listener: any): void;
removeListener(event: string, listener: any): void;
request(request: RequestArguments, context?: any): Promise;
protected requestStrict(request: JsonRpcRequest, context?: any): Promise;
protected setConnection(connection?: string | IJsonRpcConnection): HttpConnection | IJsonRpcConnection | WsConnection;
protected onPayload(payload: JsonRpcPayload): void;
protected open(connection?: string | IJsonRpcConnection): Promise;
protected close(): Promise;
}
export default JsonRpcProvider;
//# sourceMappingURL=provider.d.ts.map