import { Signer } from "ethers";
import { TypedDataSigner } from "@ethersproject/abstract-signer";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import { Deferrable } from "@ethersproject/properties";
import { Bytes } from "@ethersproject/bytes";
import { ethers } from "ethers";
import { IWebAuthnRegistrationResponse } from "./types/WebAuthnTypes";
/**
 * PasskeyEoaSigner
 * It provides methods for initializing, connecting, getting chain ID, getting address,
 * signing transactions, signing messages, and signing typed data using Passkeys.
 */
export declare class PasskeyEoaSigner extends Signer implements TypedDataSigner {
    #private;
    readonly provider: Provider;
    /**
     * Initializes the PasskeyEoaSigner with the given username.
     * @param username The username to initialize with.
     */
    init(username: string): Promise<void>;
    constructor(provider: Provider, publicKey?: IWebAuthnRegistrationResponse);
    connect(): Signer;
    getChainId(): Promise<number>;
    getAddress(): Promise<string>;
    signTransaction(transaction: Deferrable<TransactionRequest>): Promise<string>;
    signMessage(message: Bytes | string): Promise<string>;
    _signTypedData(domain: ethers.TypedDataDomain, types: Record<string, ethers.TypedDataField[]>, value: Record<string, any>): Promise<string>;
}
