/**
 * @typedef {import('../types.js').ISigner<string>} ISigner
 * @typedef {import('ox').Provider.Provider} Provider
 */
/**
 * EIP191 signer
 *
 * @implements {ISigner}
 */
export class EIP191Signer extends DID implements ISigner {
    /**
     * Generate a new signer
     *
     * @param {object} options
     * @param {Provider} options.provider -  https://oxlib.sh/guides/eip-1193#eip-1193-providers
     * @param {`0x${string}`} [options.address] - default: first account from provider
     * @param {number | `0x${string}`} [options.chainId] - default: 1
     * @param {string} [options.namespace] - default: eip155
     *
     * @example
     * ```ts twoslash
     * import { Provider } from 'ox'
     * const provider = Provider.from(window.ethereum)
     * const signer = await EIP191Signer.generate({
     *   provider,
     * })
     * ```
     */
    static from(options: {
        provider: Provider;
        address?: `0x${string}` | undefined;
        chainId?: number | `0x${string}` | undefined;
        namespace?: string | undefined;
    }): Promise<EIP191Signer>;
    /**
     * Create a DIDPkh from an address
     *
     * @param {Provider} provider -  https://oxlib.sh/guides/eip-1193#eip-1193-providers
     * @param {`0x${string}`} address
     * @param {number | `0x${string}`} [chainId]
     * @param {string} [namespace]
     */
    constructor(provider: Provider, address: `0x${string}`, chainId?: number | `0x${string}`, namespace?: string);
    /** @type {import('../types.js').SignatureType} */
    signatureType: import("../types.js").SignatureType;
    provider: {
        request: Provider.RequestFn<{
            Request: {
                method: "eth_accounts";
                params?: undefined;
            };
            ReturnType: readonly import("ox/Address").Address[];
        } | {
            Request: {
                method: "eth_blobBaseFee";
                params?: undefined;
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_blockNumber";
                params?: undefined;
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_call";
                params: [transaction: import("ox/TransactionRequest").Rpc] | [transaction: import("ox/TransactionRequest").Rpc, block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier] | [transaction: import("ox/TransactionRequest").Rpc, block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier, stateOverrides: import("ox/StateOverrides").Rpc];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_chainId";
                params?: undefined;
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_coinbase";
                params?: undefined;
            };
            ReturnType: import("ox/Address").Address;
        } | {
            Request: {
                method: "eth_estimateGas";
                params: [transaction: import("ox/TransactionRequest").Rpc] | [transaction: import("ox/TransactionRequest").Rpc, block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier] | [transaction: import("ox/TransactionRequest").Rpc, block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier, stateOverrides: import("ox/StateOverrides").Rpc];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_feeHistory";
                params: [blockCount: import("ox/Hex").Hex, newestBlock: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag, rewardPercentiles: number[] | undefined];
            };
            ReturnType: import("ox/Fee").FeeHistoryRpc;
        } | {
            Request: {
                method: "eth_gasPrice";
                params?: undefined;
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_getBalance";
                params: [address: import("ox/Address").Address, block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_getBlockByHash";
                params: [hash: import("ox/Hex").Hex, includeTransactionObjects: boolean];
            };
            ReturnType: import("ox/Block").Rpc | null;
        } | {
            Request: {
                method: "eth_getBlockByNumber";
                params: [block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag, includeTransactionObjects: boolean];
            };
            ReturnType: import("ox/Block").Rpc | null;
        } | {
            Request: {
                method: "eth_getBlockTransactionCountByHash";
                params: [hash: import("ox/Hex").Hex];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_getBlockTransactionCountByNumber";
                params: [block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_getCode";
                params: [address: import("ox/Address").Address, block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_getFilterChanges";
                params: [filterId: import("ox/Hex").Hex];
            };
            ReturnType: readonly import("ox/Log").Rpc[] | readonly import("ox/Hex").Hex[];
        } | {
            Request: {
                method: "eth_getFilterLogs";
                params: [filterId: import("ox/Hex").Hex];
            };
            ReturnType: readonly import("ox/Log").Rpc[];
        } | {
            Request: {
                method: "eth_getLogs";
                params: [filter: import("ox/Filter").Rpc];
            };
            ReturnType: readonly import("ox/Log").Rpc[];
        } | {
            Request: {
                method: "eth_getProof";
                params: [address: import("ox/Address").Address, storageKeys: import("ox/Hex").Hex[], block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier];
            };
            ReturnType: import("ox/AccountProof").Rpc;
        } | {
            Request: {
                method: "eth_getStorageAt";
                params: [address: import("ox/Address").Address, index: import("ox/Hex").Hex, block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_getTransactionByBlockHashAndIndex";
                params: [hash: import("ox/Hex").Hex, index: import("ox/Hex").Hex];
            };
            ReturnType: import("ox/Transaction").Rpc | null;
        } | {
            Request: {
                method: "eth_getTransactionByBlockNumberAndIndex";
                params: [block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag, index: import("ox/Hex").Hex];
            };
            ReturnType: import("ox/Transaction").Rpc | null;
        } | {
            Request: {
                method: "eth_getTransactionByHash";
                params: [hash: import("ox/Hex").Hex];
            };
            ReturnType: import("ox/Transaction").Rpc | null;
        } | {
            Request: {
                method: "eth_getTransactionCount";
                params: [address: import("ox/Address").Address, block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_getTransactionReceipt";
                params: [hash: import("ox/Hex").Hex];
            };
            ReturnType: import("ox/TransactionReceipt").Rpc | null;
        } | {
            Request: {
                method: "eth_getUncleCountByBlockHash";
                params: [hash: import("ox/Hex").Hex];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_getUncleCountByBlockNumber";
                params: [block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_maxPriorityFeePerGas";
                params?: undefined;
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_newBlockFilter";
                params?: undefined;
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_newFilter";
                params: [filter: import("ox/Filter").Rpc];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_newPendingTransactionFilter";
                params?: undefined;
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_protocolVersion";
                params?: undefined;
            };
            ReturnType: string;
        } | {
            Request: {
                method: "eth_requestAccounts";
                params?: undefined;
            };
            ReturnType: readonly import("ox/Address").Address[];
        } | {
            Request: {
                method: "eth_sendRawTransaction";
                params: [serializedTransaction: import("ox/Hex").Hex];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_sendTransaction";
                params: [transaction: import("ox/TransactionRequest").Rpc];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_simulateV1";
                params: [{
                    blockStateCalls: readonly {
                        blockOverrides?: import("ox/BlockOverrides").Rpc | undefined;
                        calls?: readonly import("ox/TransactionRequest").Rpc[] | undefined;
                        stateOverrides?: import("ox/StateOverrides").Rpc | undefined;
                    }[];
                    returnFullTransactions?: boolean | undefined;
                    traceTransfers?: boolean | undefined;
                    validation?: boolean | undefined;
                }, block: import("ox/Block").Number<import("ox/Hex").Hex> | import("ox/Block").Tag | import("ox/Block").Hash | import("ox/Block").Identifier];
            };
            ReturnType: readonly (import("ox/Block").Rpc & {
                calls?: readonly {
                    error?: {
                        data?: import("ox/Hex").Hex | undefined;
                        code: number;
                        message: string;
                    } | undefined;
                    logs?: readonly import("ox/Log").Rpc[] | undefined;
                    gasUsed: import("ox/Hex").Hex;
                    returnData: import("ox/Hex").Hex;
                    status: import("ox/Hex").Hex;
                }[] | undefined;
            })[];
        } | {
            Request: {
                method: "eth_signTransaction";
                params: [request: import("ox/TransactionRequest").Rpc];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_signTypedData_v4";
                params: [address: import("ox/Address").Address, message: string];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_uninstallFilter";
                params: [filterId: import("ox/Hex").Hex];
            };
            ReturnType: boolean;
        } | {
            Request: {
                method: "eth_requestAccounts";
                params?: undefined;
            };
            ReturnType: readonly import("ox/Address").Address[];
        } | {
            Request: {
                method: "eth_sendRawTransaction";
                params: [serializedTransaction: import("ox/Hex").Hex];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_sendTransaction";
                params: [transaction: import("ox/TransactionRequest").Rpc];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_signTransaction";
                params: [request: import("ox/TransactionRequest").Rpc];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "eth_signTypedData_v4";
                params: [address: import("ox/Address").Address, message: string];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "personal_sign";
                params: [data: import("ox/Hex").Hex, address: import("ox/Address").Address];
            };
            ReturnType: import("ox/Hex").Hex;
        } | {
            Request: {
                method: "wallet_addEthereumChain";
                params: [chain: {
                    chainId: string;
                    chainName: string;
                    nativeCurrency?: {
                        name: string;
                        symbol: string;
                        decimals: number;
                    } | undefined | undefined;
                    rpcUrls: readonly string[];
                    blockExplorerUrls?: readonly string[] | undefined;
                    iconUrls?: readonly string[] | undefined;
                }];
            };
            ReturnType: null;
        } | {
            Request: {
                method: "wallet_getCallsStatus";
                params?: [string];
            };
            ReturnType: {
                atomic: boolean;
                capabilities?: {
                    [capability: string]: any;
                } | undefined;
                chainId: import("ox/Hex").Hex;
                id: string;
                receipts?: readonly {
                    logs: {
                        address: import("ox/Hex").Hex;
                        data: import("ox/Hex").Hex;
                        topics: readonly import("ox/Hex").Hex[];
                    }[];
                    status: import("ox/Hex").Hex;
                    blockHash: import("ox/Hex").Hex;
                    blockNumber: import("ox/Hex").Hex;
                    gasUsed: import("ox/Hex").Hex;
                    transactionHash: import("ox/Hex").Hex;
                }[] | undefined;
                status: number;
                version: string;
            };
        } | {
            Request: {
                method: "wallet_getCapabilities";
                params?: readonly [] | readonly [import("ox/Address").Address | undefined] | readonly [import("ox/Address").Address | undefined, readonly import("ox/Hex").Hex[] | undefined] | undefined;
            };
            ReturnType: {
                [x: `0x${string}`]: {
                    [capability: string]: any;
                };
            };
        } | {
            Request: {
                method: "wallet_getPermissions";
                params?: undefined;
            };
            ReturnType: readonly {
                caveats: readonly {
                    type: string;
                    value: any;
                }[];
                date: number;
                id: string;
                invoker: `http://${string}` | `https://${string}`;
                parentCapability: "eth_accounts" | string;
            }[];
        } | {
            Request: {
                method: "wallet_grantPermissions";
                params?: [{
                    signer?: {
                        type: string;
                        data?: unknown | undefined;
                    } | undefined;
                    permissions: readonly {
                        data: unknown;
                        policies: readonly {
                            data: unknown;
                            type: string;
                        }[];
                        required?: boolean | undefined;
                        type: string;
                    }[];
                    expiry: number;
                }];
            };
            ReturnType: {
                expiry: number;
                factory?: `0x${string}` | undefined | undefined;
                factoryData?: string | undefined | undefined;
                grantedPermissions: readonly {
                    data: unknown;
                    policies: readonly {
                        data: unknown;
                        type: string;
                    }[];
                    required?: boolean | undefined;
                    type: string;
                }[];
                permissionsContext: string;
                signerData?: {
                    userOpBuilder?: `0x${string}` | undefined;
                    submitToAddress?: `0x${string}` | undefined;
                } | undefined | undefined;
            };
        } | {
            Request: {
                method: "wallet_requestPermissions";
                params: [permissions: {
                    eth_accounts: Record<string, any>;
                }];
            };
            ReturnType: readonly {
                caveats: readonly {
                    type: string;
                    value: any;
                }[];
                date: number;
                id: string;
                invoker: `http://${string}` | `https://${string}`;
                parentCapability: "eth_accounts" | string;
            }[];
        } | {
            Request: {
                method: "wallet_revokePermissions";
                params: [permissions: {
                    eth_accounts: Record<string, any>;
                }];
            };
            ReturnType: null;
        } | {
            Request: {
                method: "wallet_sendCalls";
                params: [{
                    atomicRequired: boolean;
                    calls: readonly {
                        capabilities?: {
                            [capability: string]: any;
                        } | undefined;
                        to?: import("ox/Address").Address | undefined;
                        data?: import("ox/Hex").Hex | undefined;
                        value?: import("ox/Hex").Hex | undefined;
                    }[];
                    capabilities?: {
                        [capability: string]: any;
                    } | undefined;
                    chainId?: import("ox/Hex").Hex | undefined;
                    id?: string | undefined;
                    from?: import("ox/Address").Address | undefined;
                    version: string;
                }];
            };
            ReturnType: {
                capabilities?: {
                    [capability: string]: any;
                } | undefined;
                id: string;
            };
        } | {
            Request: {
                method: "wallet_showCallsStatus";
                params: [string];
            };
            ReturnType: undefined;
        } | {
            Request: {
                method: "wallet_switchEthereumChain";
                params: [chain: {
                    chainId: string;
                }];
            };
            ReturnType: null;
        } | {
            Request: {
                method: "wallet_watchAsset";
                params: [{
                    type: "ERC20";
                    options: {
                        address: string;
                        symbol: string;
                        decimals: number;
                        image?: string | undefined;
                    };
                }];
            };
            ReturnType: boolean;
        }>;
        on: Provider.EventListenerFn;
        removeListener: Provider.EventListenerFn;
    };
    address: `0x${string}`;
    chainId: number | `0x${string}`;
    namespace: string;
    /**
     * Sign a message
     *
     * @param {Uint8Array} message
     */
    sign(message: Uint8Array): Promise<Uint8Array<ArrayBufferLike>>;
    /**
     * Export the signer as a encoded string
     */
    export(): string;
}
export type ISigner = import("../types.js").ISigner<string>;
export type Provider = import("ox").Provider.Provider;
import { DID } from 'iso-did';
import { Provider } from 'ox';
//# sourceMappingURL=eip191.d.ts.map