import * as t from 'io-ts';
import { AsyncOrSync } from 'ts-essentials';
export declare const tag: t.UnionC<[t.LiteralC<"earliest">, t.LiteralC<"latest">, t.LiteralC<"pending">]>;
export declare const quantityOrTag: t.UnionC<[t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>, t.UnionC<[t.LiteralC<"earliest">, t.LiteralC<"latest">, t.LiteralC<"pending">]>]>;
export declare const rpcCommandsDescription: {
    web3_clientVersion: {
        parameters: t.UndefinedC;
        returns: t.StringC;
    };
    net_version: {
        parameters: t.UndefinedC;
        returns: t.StringC;
    };
    eth_chainId: {
        parameters: t.UndefinedC;
        returns: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
    };
    eth_gasPrice: {
        parameters: t.UndefinedC;
        returns: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
    };
    eth_getBalance: {
        parameters: t.TupleC<[t.Type<import("ts-essentials").Opaque<"Address", string>, string, unknown>, t.UnionC<[t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>, t.UnionC<[t.LiteralC<"earliest">, t.LiteralC<"latest">, t.LiteralC<"pending">]>]>]>;
        returns: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
    };
    eth_blockNumber: {
        parameters: t.UndefinedC;
        returns: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
    };
    eth_getTransactionCount: {
        parameters: t.TupleC<[t.Type<import("ts-essentials").Opaque<"Address", string>, string, unknown>, t.UnionC<[t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>, t.UnionC<[t.LiteralC<"earliest">, t.LiteralC<"latest">, t.LiteralC<"pending">]>]>]>;
        returns: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
    };
    eth_getCode: {
        parameters: t.TupleC<[t.Type<import("ts-essentials").Opaque<"Address", string>, string, unknown>, t.UnionC<[t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>, t.UnionC<[t.LiteralC<"earliest">, t.LiteralC<"latest">, t.LiteralC<"pending">]>]>]>;
        returns: t.Type<import("ts-essentials").Opaque<"HexData", string>, string, unknown>;
    };
    eth_getBlockByNumber: {
        parameters: t.TupleC<[t.UnionC<[t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>, t.UnionC<[t.LiteralC<"earliest">, t.LiteralC<"latest">, t.LiteralC<"pending">]>]>, t.BooleanC]>;
        returns: t.TypeC<{
            number: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
            hash: t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>;
            parentHash: t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>;
            nonce: t.Type<import("ts-essentials").Opaque<"HexData", string>, string, unknown>;
            sha3Uncles: t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>;
            logsBloom: t.Type<import("ts-essentials").Opaque<"HexData", string>, string, unknown>;
            transactionsRoot: t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>;
            stateRoot: t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>;
            receiptsRoot: t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>;
            miner: t.Type<import("ts-essentials").Opaque<"Address", string>, string, unknown>;
            difficulty: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
            totalDifficulty: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
            extraData: t.Type<import("ts-essentials").Opaque<"HexData", string>, string, unknown>;
            size: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
            gasLimit: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
            gasUsed: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
            timestamp: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
            transactions: t.ArrayC<t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>>;
            uncles: t.ArrayC<t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>>;
        }>;
    };
    eth_sendRawTransaction: {
        parameters: t.TupleC<[t.Type<import("ts-essentials").Opaque<"HexData", string>, string, unknown>]>;
        returns: t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>;
    };
    eth_getTransactionReceipt: {
        parameters: t.TupleC<[t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>]>;
        returns: t.Type<{
            transactionHash: import("ts-essentials").Opaque<"Hash", string>;
            transactionIndex: import("ts-essentials").Opaque<"Quantity", string>;
            blockHash: import("ts-essentials").Opaque<"Hash", string>;
            blockNumber: import("ts-essentials").Opaque<"Quantity", string>;
            from: import("ts-essentials").Opaque<"Address", string>;
            to: import("ts-essentials").Opaque<"Address", string> | undefined;
            cumulativeGasUsed: import("ts-essentials").Opaque<"Quantity", string>;
            gasUsed: import("ts-essentials").Opaque<"Quantity", string>;
            contractAddress: import("ts-essentials").Opaque<"Address", string> | undefined;
            logs: import("ts-essentials").Opaque<"HexData", string>[];
            logsBloom: import("ts-essentials").Opaque<"HexData", string>;
            status: import("ts-essentials").Opaque<"Quantity", string>;
        } | undefined, {
            transactionHash: string;
            transactionIndex: string;
            blockHash: string;
            blockNumber: string;
            from: string;
            to: string | null;
            cumulativeGasUsed: string;
            gasUsed: string;
            contractAddress: string | null;
            logs: string[];
            logsBloom: string;
            status: string;
        } | null, unknown>;
    };
    eth_sendTransaction: {
        parameters: t.TupleC<[t.TypeC<{
            from: t.Type<import("ts-essentials").Opaque<"Address", string>, string, unknown>;
            to: t.Type<import("ts-essentials").Opaque<"Address", string> | undefined, string | null, unknown>;
            gas: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
            gasPrice: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
            value: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
            data: t.Type<import("ts-essentials").Opaque<"HexData", string> | undefined, string | null, unknown>;
            nonce: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
        }>]>;
        returns: t.Type<import("ts-essentials").Opaque<"Hash", string>, string, unknown>;
    };
    eth_call: {
        parameters: t.TupleC<[t.TypeC<{
            from: t.Type<import("ts-essentials").Opaque<"Address", string> | undefined, string | null, unknown>;
            to: t.Type<import("ts-essentials").Opaque<"Address", string> | undefined, string | null, unknown>;
            gas: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
            gasPrice: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
            value: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
            data: t.Type<import("ts-essentials").Opaque<"HexData", string> | undefined, string | null, unknown>;
        }>, t.UnionC<[t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>, t.UnionC<[t.LiteralC<"earliest">, t.LiteralC<"latest">, t.LiteralC<"pending">]>]>]>;
        returns: t.Type<import("ts-essentials").Opaque<"HexData", string>, string, unknown>;
    };
    eth_estimateGas: {
        parameters: t.TupleC<[t.TypeC<{
            from: t.Type<import("ts-essentials").Opaque<"Address", string> | undefined, string | null, unknown>;
            to: t.Type<import("ts-essentials").Opaque<"Address", string> | undefined, string | null, unknown>;
            gas: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
            gasPrice: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
            value: t.Type<import("ts-essentials").Opaque<"Quantity", string> | undefined, string | null, unknown>;
            data: t.Type<import("ts-essentials").Opaque<"HexData", string> | undefined, string | null, unknown>;
        }>]>;
        returns: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
    };
    eth_getStorageAt: {
        parameters: t.TupleC<[t.Type<import("ts-essentials").Opaque<"Address", string>, string, unknown>, t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>, t.UnionC<[t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>, t.UnionC<[t.LiteralC<"earliest">, t.LiteralC<"latest">, t.LiteralC<"pending">]>]>]>;
        returns: t.Type<import("ts-essentials").Opaque<"HexData", string>, string, unknown>;
    };
    eth_accounts: {
        parameters: t.UndefinedC;
        returns: t.ArrayC<t.Type<import("ts-essentials").Opaque<"Address", string>, string, unknown>>;
    };
    evm_increaseTime: {
        parameters: t.TupleC<[t.NumberC]>;
        returns: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
    };
    miner_start: {
        parameters: t.UndefinedC;
        returns: t.LiteralC<true>;
    };
    miner_stop: {
        parameters: t.UndefinedC;
        returns: t.LiteralC<true>;
    };
    evm_mine: {
        parameters: t.UndefinedC;
        returns: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
    };
    evm_snapshot: {
        parameters: t.UndefinedC;
        returns: t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>;
    };
    evm_revert: {
        parameters: t.TupleC<[t.Type<import("ts-essentials").Opaque<"Quantity", string>, string, unknown>]>;
        returns: t.LiteralC<true>;
    };
};
declare type rpcCommandsDescriptionType = typeof rpcCommandsDescription;
declare type RpcCommandsParamsType = {
    [K in keyof rpcCommandsDescriptionType]: t.TypeOf<rpcCommandsDescriptionType[K]['parameters']>;
};
declare type RpcCommandsReturnsType = {
    [K in keyof rpcCommandsDescriptionType]: t.TypeOf<rpcCommandsDescriptionType[K]['returns']>;
};
export declare type RPCExecutorType = {
    [cmd in keyof rpcCommandsDescriptionType]: (params: RpcCommandsParamsType[cmd]) => AsyncOrSync<RpcCommandsReturnsType[cmd]>;
};
export {};
