import { SmartAccount } from "../SmartAccount";
import { MetaTransaction, Operation, StateOverrideSet, BaseUserOperation, UserOperationV6, UserOperationV7 } from "../../types";
import { CreateBaseUserOperationOverrides, Signer, SafeUserOperationTypedDataDomain, SafeUserOperationV6TypedMessageValue, SignerSignaturePair, WebauthnSignatureData, SafeModuleExecutorFunctionSelector, WebAuthnSignatureOverrides, BaseInitOverrides, WebauthnPublicKey } from "./types";
import { SendUseroperationResponse } from "../SendUseroperationResponse";
export declare class SafeAccount extends SmartAccount {
    static readonly DEFAULT_SAFE_SINGLETON: import("./types").SafeAccountSingleton;
    static readonly DEFAULT_WEB_AUTHN_SHARED_SIGNER: string;
    static readonly DEFAULT_WEB_AUTHN_SIGNER_SINGLETON: string;
    static readonly DEFAULT_WEB_AUTHN_SIGNER_FACTORY: string;
    static readonly DEFAULT_WEB_AUTHN_FCLP256_VERIFIER: string;
    static readonly DEFAULT_WEB_AUTHN_PRECOMPILE: string;
    static readonly DEFAULT_WEB_AUTHN_SIGNER_PROXY_CREATION_CODE = "0x61010060405234801561001157600080fd5b506040516101ee3803806101ee83398101604081905261003091610058565b6001600160a01b0390931660805260a09190915260c0526001600160b01b031660e0526100bc565b6000806000806080858703121561006e57600080fd5b84516001600160a01b038116811461008557600080fd5b60208601516040870151606088015192965090945092506001600160b01b03811681146100b157600080fd5b939692955090935050565b60805160a05160c05160e05160ff6100ef60003960006008015260006031015260006059015260006080015260ff6000f3fe608060408190527f00000000000000000000000000000000000000000000000000000000000000003660b681018290527f000000000000000000000000000000000000000000000000000000000000000060a082018190527f00000000000000000000000000000000000000000000000000000000000000008285018190527f00000000000000000000000000000000000000000000000000000000000000009490939192600082376000806056360183885af490503d6000803e8060c3573d6000fd5b503d6000f3fea2646970667358221220ddd9bb059ba7a6497d560ca97aadf4dbf0476f578378554a50d41c6bb654beae64736f6c63430008180033";
    static readonly DEFAULT_MULTISEND_CONTRACT_ADDRESS = "0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526";
    static readonly initializerFunctionSelector: string;
    static readonly initializerFunctionInputAbi: string[];
    static readonly DEFAULT_EXECUTOR_FUCNTION_SELECTOR = SafeModuleExecutorFunctionSelector.executeUserOpWithErrorString;
    static readonly executorFunctionInputAbi: string[];
    protected isInitWebAuthn: boolean;
    protected x: bigint | null;
    protected y: bigint | null;
    readonly entrypointAddress: string;
    readonly safe4337ModuleAddress: string;
    protected factoryAddress: string | null;
    protected factoryData: string | null;
    constructor(accountAddress: string, safe4337ModuleAddress: string, entrypointAddress: string);
    static createProxyAddress(initializerCallData: string, overrides?: {
        c2Nonce?: bigint;
        safeFactoryAddress?: string;
        singletonInitHash?: string;
    }): string;
    static createAccountCallDataSingleTransaction(metaTransaction: MetaTransaction, overrides?: {
        safeModuleExecutorFunctionSelector?: SafeModuleExecutorFunctionSelector;
    }): string;
    static createAccountCallDataBatchTransactions(metaTransactions: MetaTransaction[], overrides?: {
        safeModuleExecutorFunctionSelector?: SafeModuleExecutorFunctionSelector;
        multisendContractAddress?: string;
    }): string;
    static createAccountCallData(to: string, value: bigint, data: string, operation: Operation, overrides?: {
        safeModuleExecutorFunctionSelector?: SafeModuleExecutorFunctionSelector;
    }): string;
    static decodeAccountCallData(callData: string): [MetaTransaction, SafeModuleExecutorFunctionSelector];
    static prependTokenPaymasterApproveToCallDataStatic(callData: string, tokenAddress: string, paymasterAddress: string, approveAmount: bigint, overrides?: {
        multisendContractAddress?: string;
    }): string;
    static formatEip712SignaturesToUseroperationSignature(signersAddresses: string[], signatures: string[], overrides?: {
        validAfter?: bigint;
        validUntil?: bigint;
    }): string;
    protected static getUserOperationEip712Hash(useroperation: UserOperationV6 | UserOperationV7, chainId: bigint, overrides?: {
        validAfter?: bigint;
        validUntil?: bigint;
        entrypointAddress?: string;
        safe4337ModuleAddress?: string;
    }): string;
    protected static getUserOperationEip712Data(useroperation: UserOperationV6 | UserOperationV7, chainId: bigint, overrides?: {
        validAfter?: bigint;
        validUntil?: bigint;
        entrypointAddress?: string;
        safe4337ModuleAddress?: string;
    }): {
        domain: SafeUserOperationTypedDataDomain;
        types: Record<string, {
            name: string;
            type: string;
        }[]>;
        messageValue: SafeUserOperationV6TypedMessageValue | SafeUserOperationV6TypedMessageValue;
    };
    static getUserOperationEip712Data_V6(useroperation: UserOperationV6, chainId: bigint, overrides?: {
        validAfter?: bigint;
        validUntil?: bigint;
        entrypointAddress?: string;
        safe4337ModuleAddress?: string;
    }): {
        domain: SafeUserOperationTypedDataDomain;
        types: Record<string, {
            name: string;
            type: string;
        }[]>;
        messageValue: SafeUserOperationV6TypedMessageValue;
    };
    static getUserOperationEip712Hash_V6(useroperation: UserOperationV6, chainId: bigint, overrides?: {
        validAfter?: bigint;
        validUntil?: bigint;
        entrypointAddress?: string;
        safe4337ModuleAddress?: string;
    }): string;
    static getUserOperationEip712Data_V7(useroperation: UserOperationV7, chainId: bigint, overrides?: {
        validAfter?: bigint;
        validUntil?: bigint;
        entrypointAddress?: string;
        safe4337ModuleAddress?: string;
    }): {
        domain: SafeUserOperationTypedDataDomain;
        types: Record<string, {
            name: string;
            type: string;
        }[]>;
        messageValue: SafeUserOperationV6TypedMessageValue;
    };
    static getUserOperationEip712Hash_V7(useroperation: UserOperationV7, chainId: bigint, overrides?: {
        validAfter?: bigint;
        validUntil?: bigint;
        entrypointAddress?: string;
        safe4337ModuleAddress?: string;
    }): string;
    static formatEip712SingleSignatureToUseroperationSignature(signature: string, overrides?: {
        validAfter?: bigint;
        validUntil?: bigint;
    }): string;
    sendUserOperation(userOperation: UserOperationV6 | UserOperationV7, bundlerRpc: string): Promise<SendUseroperationResponse>;
    protected static createAccountAddressAndFactoryAddressAndData(owners: Signer[], overrides: BaseInitOverrides, safe4337ModuleAddress: string, safeModuleSetupddress: string): [string, string, string];
    protected static createBaseInitializerCallData(owners: Signer[], threshold: number, safe4337ModuleAddress: string, safeModuleSetupddress: string, multisendContractAddress?: string, webAuthnSharedSigner?: string, eip7212WebAuthnPrecompileVerifierForSharedSigner?: string, eip7212WebAuthnContractVerifierForSharedSigner?: string): string;
    protected static createFactoryAddressAndData(owners: Signer[], overrides: BaseInitOverrides | undefined, safe4337ModuleAddress: string, safeModuleSetupddress: string): [string, string];
    prependTokenPaymasterApproveToCallData(callData: string, tokenAddress: string, paymasterAddress: string, approveAmount: bigint, overrides?: {
        multisendContractAddress?: string;
    }): string;
    estimateUserOperationGas(userOperation: UserOperationV6 | UserOperationV7, bundlerRpc: string, overrides?: {
        stateOverrideSet?: StateOverrideSet;
        dummySignerSignaturePairs?: SignerSignaturePair[];
        expectedSigners?: Signer[];
        webAuthnSharedSigner?: string;
        webAuthnSignerFactory?: string;
        webAuthnSignerSingleton?: string;
        eip7212WebAuthnPrecompileVerifier?: string;
        eip7212WebAuthnContractVerifier?: string;
    }): Promise<[bigint, bigint, bigint]>;
    protected createBaseUserOperationAndFactoryAddressAndFactoryData(transactions: MetaTransaction[], isV06: boolean, providerRpc?: string, bundlerRpc?: string, overrides?: CreateBaseUserOperationOverrides): Promise<[BaseUserOperation, string | null, string | null]>;
    private static handlefetchGasPrice;
    signUserOperation(useroperation: UserOperationV6 | UserOperationV7, privateKeys: string[], chainId: bigint, overrides?: {
        validAfter?: bigint;
        validUntil?: bigint;
    }): string;
    static createWebAuthnSignerVerifierAddress(x: bigint, y: bigint, overrides?: {
        eip7212WebAuthnPrecompileVerifier?: string;
        eip7212WebAuthnContractVerifier?: string;
        webAuthnSignerFactory?: string;
        webAuthnSignerSingleton?: string;
    }): string;
    static formatSignaturesToUseroperationSignature(signerSignaturePairs: SignerSignaturePair[], overrides?: WebAuthnSignatureOverrides): string;
    static getSignerLowerCaseAddress(signer: Signer, overrides?: WebAuthnSignatureOverrides): string;
    static sortSignatures(signerSignaturePairs: SignerSignaturePair[], overrides?: WebAuthnSignatureOverrides): void;
    static buildSignaturesFromSingerSignaturePairs(signerSignaturePairs: SignerSignaturePair[], webAuthnSignatureOverrides?: WebAuthnSignatureOverrides): string;
    static createWebAuthnSignature(signatureData: WebauthnSignatureData): string;
    createSwapOwnerMetaTransactions(nodeRpcUrl: string, newOwner: Signer, oldOwner: Signer, overrides?: {
        prevOwner?: string;
        eip7212WebAuthnPrecompileVerifier?: string;
        eip7212WebAuthnContractVerifier?: string;
        webAuthnSignerFactory?: string;
        webAuthnSignerSingleton?: string;
    }): Promise<MetaTransaction[]>;
    createRemoveOwnerMetaTransaction(nodeRpcUrl: string, ownerToDelete: Signer, threshold: number, overrides?: {
        prevOwner?: string;
        eip7212WebAuthnPrecompileVerifier?: string;
        eip7212WebAuthnContractVerifier?: string;
        webAuthnSignerFactory?: string;
        webAuthnSignerSingleton?: string;
    }): Promise<MetaTransaction>;
    createAddOwnerWithThresholdMetaTransactions(newOwner: Signer, threshold: number, overrides?: {
        nodeRpcUrl?: string;
        eip7212WebAuthnPrecompileVerifier?: string;
        eip7212WebAuthnContractVerifier?: string;
        webAuthnSignerFactory?: string;
        webAuthnSignerSingleton?: string;
    }): Promise<MetaTransaction[]>;
    createStandardAddOwnerWithThresholdMetaTransaction(newOwner: string, threshold: number): MetaTransaction;
    createStandardSwapOwnerMetaTransaction(newOwner: string, oldOwner: string, prevOwner: string): MetaTransaction;
    createStandardRemoveOwnerMetaTransaction(ownerToDelete: string, threshold: number, prevOwner: string): MetaTransaction;
    static createDeployWebAuthnVerifierMetaTransaction(x: bigint, y: bigint, overrides?: {
        eip7212WebAuthnPrecompileVerifier?: string;
        eip7212WebAuthnContractVerifier?: string;
        webAuthnSignerFactory?: string;
    }): MetaTransaction;
    getOwners(nodeRpcUrl: string): Promise<string[]>;
    getModules(nodeRpcUrl: string, overrides?: {
        start?: string;
        pageSize?: bigint;
    }): Promise<[string[], string]>;
    isModuleEnabled(nodeRpcUrl: string, moduleAddress: string): Promise<boolean>;
    static createDummySignerSignaturePairForExpectedSigners(expectedSigners: Signer[], webAuthnSignatureOverrides?: WebAuthnSignatureOverrides): SignerSignaturePair[];
    static verifyWebAuthnSignatureForMessageHash(nodeRpcUrl: string, signer: WebauthnPublicKey, messageHash: string, signature: string, overrides?: {
        eip7212WebAuthnPrecompileVerifier?: string;
        eip7212WebAuthnContractVerifier?: string;
        webAuthnSignerSingleton?: string;
    }): Promise<boolean>;
    private static createSafeWebAuthnSignerProxyDeployedByteCode;
    static createEnableModuleMetaTransaction(moduleAddress: string, accountAddress: string): MetaTransaction;
    createDisableModuleMetaTransaction(nodeRpcUrl: string, moduleToDisableAddress: string, accountAddress: string, overrides?: {
        prevModuleAddress?: string;
        modulesStart?: string;
        modulesPageSize?: bigint;
    }): Promise<MetaTransaction>;
    static createStandardDisableModuleMetaTransaction(moduleAddress: string, prevModuleAddress: string, accountAddress: string): MetaTransaction;
}
//# sourceMappingURL=SafeAccount.d.ts.map