import * as openpgp from 'openpgp';
import { MPSTypes } from '@bitgo/sdk-lib-mpc';
import { EddsaMPCv2SignatureShareRound1Output, EddsaMPCv2SignatureShareRound2Output } from '@bitgo/public-types';
import { SignatureShareRecord } from '../../utils/tss/baseTypes';
import { MPCv2PartiesEnum } from '../../utils/tss/ecdsa/typesMPCv2';
type SignerPartyId = MPCv2PartiesEnum.USER | MPCv2PartiesEnum.BACKUP;
/**
 * Builds the round-1 signature share record.
 *
 * PGP-signs the WASM round-0 broadcast message with the signer's ephemeral key and
 * wraps it into a SignatureShareRecord ready for `sendSignatureShareV2`.
 */
export declare function getSignatureShareRoundOne(userMsg1: MPSTypes.DeserializedMessage, userGpgPrivKey: openpgp.PrivateKey, partyId?: SignerPartyId, otherSignerPartyId?: MPCv2PartiesEnum): Promise<SignatureShareRecord>;
/**
 * Verifies the peer's round-1 PGP signature and returns the raw deserialized
 * message ready for `DSG.handleIncomingMessages`.
 */
export declare function verifyPeerMessageRoundOne(parsedRound1Output: EddsaMPCv2SignatureShareRound1Output, peerGpgKey: openpgp.Key, peerPartyId?: MPCv2PartiesEnum): Promise<MPSTypes.DeserializedMessage>;
/**
 * Builds the round-2 signature share record.
 */
export declare function getSignatureShareRoundTwo(userMsg2: MPSTypes.DeserializedMessage, userGpgPrivKey: openpgp.PrivateKey, partyId?: SignerPartyId, otherSignerPartyId?: MPCv2PartiesEnum): Promise<SignatureShareRecord>;
/**
 * Verifies the peer's round-2 PGP signature and returns the raw deserialized
 * message ready for `DSG.handleIncomingMessages`.
 */
export declare function verifyPeerMessageRoundTwo(parsedRound2Output: EddsaMPCv2SignatureShareRound2Output, peerGpgKey: openpgp.Key, peerPartyId?: MPCv2PartiesEnum): Promise<MPSTypes.DeserializedMessage>;
/**
 * Builds the round-3 signature share record (final signer message).
 *
 * There is no corresponding `verifyBitGoMessageRoundThree` because Wallet Platform
 * finalises the signing server-side after receiving round 3; the client obtains the
 * signed transaction via `sendTxRequest`.
 */
export declare function getSignatureShareRoundThree(userMsg3: MPSTypes.DeserializedMessage, userGpgPrivKey: openpgp.PrivateKey, partyId?: SignerPartyId, otherSignerPartyId?: MPCv2PartiesEnum): Promise<SignatureShareRecord>;
export {};
//# sourceMappingURL=eddsaMPCv2.d.ts.map