///
import { EventEmitter } from "events";
import { AddressString, Callback } from "./types/common";
import { JSONRPCRequest, JSONRPCResponse } from "./types/JSONRPC";
import { Web3Provider } from "./types/Web3Provider";
import { WalletLinkRelay } from "./WalletLinkRelay";
export interface WalletLinkProviderOptions {
relay: WalletLinkRelay;
jsonRpcUrl: string;
chainId?: number;
}
export declare class WalletLinkProvider extends EventEmitter implements Web3Provider {
private readonly _filterPolyfill;
private readonly _relay;
private readonly _chainId;
private readonly _jsonRpcUrl;
private _addresses;
constructor(options: Readonly);
readonly selectedAddress: AddressString | undefined;
readonly networkVersion: string;
readonly isWalletLink: boolean;
readonly host: string;
readonly connected: boolean;
isConnected(): boolean;
enable(): Promise;
send(request: JSONRPCRequest): JSONRPCResponse;
send(request: JSONRPCRequest[]): JSONRPCResponse[];
send(request: JSONRPCRequest, callback: Callback): void;
send(request: JSONRPCRequest[], callback: Callback): void;
send(method: string, params?: any[] | any): Promise;
sendAsync(request: JSONRPCRequest, callback: Callback): void;
sendAsync(request: JSONRPCRequest[], callback: Callback): void;
scanQRCode(match?: RegExp): Promise;
arbitraryRequest(data: string): Promise;
supportsSubscriptions(): boolean;
subscribe(): void;
unsubscribe(): void;
disconnect(): boolean;
private _send;
private _sendAsync;
private _sendRequest;
private _setAddresses;
private _sendRequestAsync;
private _sendMultipleRequestsAsync;
private _handleSynchronousMethods;
private _handleAsynchronousMethods;
private _handleAsynchronousFilterMethods;
private _isKnownAddress;
private _ensureKnownAddress;
private _prepareTransactionParams;
private _requireAuthorization;
private _throwUnsupportedMethodError;
private _signEthereumMessage;
private _ethereumAddressFromSignedMessage;
private _eth_accounts;
private _eth_coinbase;
private _net_version;
private _eth_requestAccounts;
private _eth_sign;
private _eth_ecRecover;
private _personal_sign;
private _personal_ecRecover;
private _eth_signTransaction;
private _eth_sendRawTransaction;
private _eth_sendTransaction;
private _eth_signTypedData_v1;
private _eth_signTypedData_v3;
private _eth_signTypedData_v4;
private _walletlink_arbitrary;
private _eth_uninstallFilter;
private _eth_newFilter;
private _eth_newBlockFilter;
private _eth_newPendingTransactionFilter;
private _eth_getFilterChanges;
private _eth_getFilterLogs;
}