import type { UserOperationStruct_v6 } from "@alchemy/aa-core";
import { Key } from "../types";
import type { SignersNonces, SignersPubKeys, SignersSignatures, PublicNonces, SignatureOutput } from "../types";
import type { Hex } from "../types/misc";
import type { SchnorrSigner } from "../signers";
interface SerializedMultiSigOp {
    id: string;
    opHash: string;
    userOpRequest: {
        sender: string;
        nonce: string;
        initCode: string;
        callData: string;
        callGasLimit: string;
        verificationGasLimit: string;
        preVerificationGas: string;
        maxFeePerGas: string;
        maxPriorityFeePerGas: string;
        paymasterAndData: string;
        signature: string;
    };
    combinedPubKey: string;
    publicNonces: Record<string, {
        kPublic: string;
        kTwoPublic: string;
    }>;
    publicKeys: Record<string, string>;
    signatures: Record<string, {
        finalPublicNonce: string;
        challenge: string;
        signature: string;
    }>;
}
export declare class MultiSigUserOp {
    readonly id: string;
    readonly opHash: Hex;
    readonly userOpRequest: UserOperationStruct_v6;
    combinedPubKey: Key;
    publicNonces: SignersNonces;
    publicKeys: SignersPubKeys;
    signatures: SignersSignatures;
    constructor(publicKeys: Key[], publicNonces: PublicNonces[], opHash: Hex, userOpRequest: UserOperationStruct_v6);
    getOpHash(): string;
    signMultiSigHash(signer: SchnorrSigner): SignatureOutput;
    getSummedSigData(): Hex;
    getAddressSignature(signerAddress: string): SignatureOutput;
    getAddressPublicNonces(signerAddress: string): PublicNonces;
    getAddressPubKeys(signerAddress: string): Key;
    _getSignatures(): SignatureOutput[];
    _getPublicNonces(): PublicNonces[];
    _getPublicKeys(): Key[];
    toJson(): SerializedMultiSigOp;
    static fromJson: (serialized: any) => any;
}
export {};
