/** * @prettier */ import { SerializedKeyPair } from 'openpgp'; import { IBaseCoin, KeychainsTriplet } from '../baseCoin'; import { BitGoBase } from '../bitgoBase'; import { Keychain, KeyType } from '../keychain'; import { PrebuildTransactionWithIntentOptions } from './tss/baseTypes'; export interface MpcKeyShare { publicShare: string; privateShare: string; privateShareProof?: string; } export declare abstract class MpcUtils { protected bitgo: BitGoBase; protected baseCoin: IBaseCoin; constructor(bitgo: BitGoBase, baseCoin: IBaseCoin); protected decryptPrivateShare(privateShare: string, userGpgKey: SerializedKeyPair): Promise; protected createBitgoKeychainInWP(userGpgKey: SerializedKeyPair, userKeyShare: MpcKeyShare, backupKeyShare: MpcKeyShare, keyType: KeyType, enterprise?: string): Promise; /** * Creates User, Backup, and BitGo MPC Keychains. * * @param params.passphrase - passphrase used to encrypt signing materials created for User and Backup * @param params.enterprise - optional enterprise id that will be attached to the BitGo Keychain * @param params.originalPasscodeEncryptionCode - optional encryption code used to reset the user's password, if absent, password recovery will not work */ abstract createKeychains(params: { passphrase: string; enterprise?: string; originalPasscodeEncryptionCode?: string; }): Promise; /** * This function would be responsible for populating intents * based on the type of coin / sig scheme the coin uses * @param {IBaseCoin} baseCoin * @param {PrebuildTransactionWithIntentOptions} params * @returns {Record} */ populateIntent(baseCoin: IBaseCoin, params: PrebuildTransactionWithIntentOptions): Record; } //# sourceMappingURL=mpcUtils.d.ts.map