import type { TypedDataDomain, TypedDataField } from "../hash/index.js"; import type { TransactionLike } from "../transaction/index.js"; import type { BlockTag, Provider, TransactionRequest, TransactionResponse } from "./provider.js"; import type { Signer } from "./signer.js"; /** * An **AbstractSigner** includes most of teh functionality required * to get a [[Signer]] working as expected, but requires a few * Signer-specific methods be overridden. * */ export declare abstract class AbstractSigner

implements Signer { /** * The provider this signer is connected to. */ readonly provider: P; /** * Creates a new Signer connected to %%provider%%. */ constructor(provider?: P); /** * Resolves to the Signer address. */ abstract getAddress(): Promise; /** * Returns the signer connected to %%provider%%. * * This may throw, for example, a Signer connected over a Socket or * to a specific instance of a node may not be transferrable. */ abstract connect(provider: null | Provider): Signer; getNonce(blockTag?: BlockTag): Promise; populateCall(tx: TransactionRequest): Promise>; populateTransaction(tx: TransactionRequest): Promise>; estimateGas(tx: TransactionRequest): Promise; call(tx: TransactionRequest): Promise; resolveName(name: string): Promise; sendTransaction(tx: TransactionRequest): Promise; abstract signTransaction(tx: TransactionRequest): Promise; abstract signMessage(message: string | Uint8Array): Promise; abstract signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise; } /** * A **VoidSigner** is a class deisgned to allow an address to be used * in any API which accepts a Signer, but for which there are no * credentials available to perform any actual signing. * * This for example allow impersonating an account for the purpose of * static calls or estimating gas, but does not allow sending transactions. */ export declare class VoidSigner extends AbstractSigner { #private; /** * The signer address. */ readonly address: string; /** * Creates a new **VoidSigner** with %%address%% attached to * %%provider%%. */ constructor(address: string, provider?: null | Provider); getAddress(): Promise; connect(provider: null | Provider): VoidSigner; signTransaction(tx: TransactionRequest): Promise; signMessage(message: string | Uint8Array): Promise; signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise; } //# sourceMappingURL=abstract-signer.d.ts.map