import type { Address } from "abitype";
import type { BatchUserOperationCallData, SmartAccountSigner } from "@alchemy/aa-core";
import { BaseSmartContractAccount } from "@alchemy/aa-core";
import type { BytesLike } from "ethers";
import type { FallbackTransport, Hex, Transport } from "viem";
import type { MultiSigAccountAbstractionParams } from "./schema";
export declare class MultiSigAccountAbstraction<TTransport extends Transport | FallbackTransport = Transport> extends BaseSmartContractAccount<TTransport, SmartAccountSigner> {
    protected owner: SmartAccountSigner;
    protected combinedAddress: Address[];
    protected factoryAddress: Address;
    protected salt: BytesLike;
    constructor(params: MultiSigAccountAbstractionParams<TTransport>);
    getDummySignature(): `0x${string}`;
    encodeExecute(target: Hex, value: bigint, data: Hex): Promise<`0x${string}`>;
    encodeBatchExecute(_txs: BatchUserOperationCallData): Promise<`0x${string}`>;
    signMessage(msg: Uint8Array | string): Promise<`0x${string}`>;
    protected getAccountInitCode(): Promise<`0x${string}`>;
}
export declare function createMultiSigAccountAbstraction(params: Pick<MultiSigAccountAbstractionParams<Transport>, "chain" | "accountAddress" | "rpcClient" | "combinedAddress" | "salt">): MultiSigAccountAbstraction;
