import { Signer } from "@ethersproject/abstract-signer"; import { BigNumber } from "@ethersproject/bignumber"; import { Bytes } from "@ethersproject/bytes"; import { Deferrable } from "@ethersproject/properties"; import type { BlockTag, FeeData, JsonRpcProvider, Provider, TransactionRequest, TransactionResponse } from "@ethersproject/providers"; import { TypedDataDomain, TypedDataSigner, TypedDataTypes } from "./types/ethers"; /** * Wrapper around a TypedDataSigner Signer object that implements `_signTypedData` using * `eth_signTypedData_v3` instead of `eth_signTypedData_v4`. * * Takes a Signer instance on creation. * All other Signer methods are proxied to initial instance. */ export declare class TypedDataV3Signer implements TypedDataSigner { signer: Signer; provider: JsonRpcProvider; _isSigner: boolean; constructor(signer: Signer); _signTypedData(domain: TypedDataDomain, types: TypedDataTypes, data: Record): Promise; getAddress(): Promise; signMessage(message: string | Bytes): Promise; signTransaction(transaction: Deferrable): Promise; connect(provider: Provider): Signer; getBalance(blockTag?: BlockTag): Promise; getTransactionCount(blockTag?: BlockTag): Promise; estimateGas(transaction: Deferrable): Promise; call(transaction: Deferrable, blockTag?: BlockTag): Promise; sendTransaction(transaction: Deferrable): Promise; getChainId(): Promise; getGasPrice(): Promise; getFeeData(): Promise; resolveName(name: string): Promise; checkTransaction(transaction: Deferrable): Deferrable; populateTransaction(transaction: Deferrable): Promise; _checkProvider(operation?: string): void; } /** * Wrapper around a TypedDataSigner Signer object that implements `_signTypedData` using * `eth_signTypedData_v4` as usual. * The difference here is that the domain `chainId` is transformed to a `number`. * That's done to circumvent a bug introduced in the latest Metamask version (9.6.0) * that no longer accepts a string for domain `chainId`. * See for more details https://github.com/MetaMask/metamask-extension/issues/11308. * * Takes a Signer instance on creation. * All other Signer methods are proxied to initial instance. */ export declare class IntChainIdTypedDataV4Signer implements TypedDataSigner { signer: Signer; provider: JsonRpcProvider; _isSigner: boolean; constructor(signer: Signer); _signTypedData(domain: TypedDataDomain, types: TypedDataTypes, data: Record): Promise; getAddress(): Promise; signMessage(message: string | Bytes): Promise; signTransaction(transaction: Deferrable): Promise; connect(provider: Provider): Signer; getBalance(blockTag?: BlockTag): Promise; getTransactionCount(blockTag?: BlockTag): Promise; estimateGas(transaction: Deferrable): Promise; call(transaction: Deferrable, blockTag?: BlockTag): Promise; sendTransaction(transaction: Deferrable): Promise; getChainId(): Promise; getGasPrice(): Promise; getFeeData(): Promise; resolveName(name: string): Promise; checkTransaction(transaction: Deferrable): Deferrable; populateTransaction(transaction: Deferrable): Promise; _checkProvider(operation?: string): void; }