import type { HardhatEthersSigner as HardhatEthersSignerI } from "../../types.js";
import type { HardhatEthersProvider } from "../hardhat-ethers-provider/hardhat-ethers-provider.js";
import type { BlockTag, TransactionRequest, ethers, AuthorizationRequest, Authorization } from "ethers";
import type { NetworkConfig } from "hardhat/types/config";
export declare class HardhatEthersSigner implements HardhatEthersSignerI {
    #private;
    readonly address: string;
    readonly provider: ethers.JsonRpcProvider | HardhatEthersProvider;
    static networkName: string;
    static networkConfig: NetworkConfig;
    static create(provider: HardhatEthersProvider, networkName: string, networkConfig: NetworkConfig, address: string): Promise<HardhatEthersSigner>;
    private constructor();
    connect(provider: ethers.JsonRpcProvider | HardhatEthersProvider): ethers.Signer;
    authorize(auth: AuthorizationRequest): Promise<Authorization>;
    populateAuthorization(_auth: AuthorizationRequest): Promise<AuthorizationRequest>;
    getNonce(blockTag?: BlockTag | undefined): Promise<number>;
    populateCall(tx: TransactionRequest): Promise<ethers.TransactionLike<string>>;
    populateTransaction(tx: TransactionRequest): Promise<ethers.TransactionLike<string>>;
    estimateGas(tx: TransactionRequest): Promise<bigint>;
    call(tx: TransactionRequest): Promise<string>;
    resolveName(name: string): Promise<string | null>;
    signTransaction(_tx: TransactionRequest): Promise<string>;
    sendTransaction(tx: TransactionRequest): Promise<ethers.TransactionResponse>;
    signMessage(message: string | Uint8Array): Promise<string>;
    signTypedData(domain: ethers.TypedDataDomain, types: Record<string, ethers.TypedDataField[]>, value: Record<string, any>): Promise<string>;
    getAddress(): Promise<string>;
    toJSON(): string;
}
export { HardhatEthersSigner as SignerWithAddress };
//# sourceMappingURL=signers.d.ts.map