/// import { PrivateKey } from '../../../models'; export interface MultisigPluginTransaction { init(options: any): Promise; multisigOptions: any; owners: any[]; threshold: number; /** Whether parent transaction has been set yet */ hasParentTransaction: boolean; /** Whether transaction has been prepared for signing (has raw body) */ hasRawTransaction: boolean; /** List of accounts transaction can be signed by - but have not signed yet */ missingSignatures: any[]; /** Parent transaction is what gets sent to chain * Actual transaction actions are embedded in parent transaction data */ parentRawTransaction: any; /** Whether transaction has been prepared for signing (has raw body) */ rawTransaction: any; /** An array of the unique set of authorizations needed for all actions in transaction */ requiredAuthorizations: any[]; /** Wether multisigPlugin requires transaction body to be wrapped in a parent transaction * For chains that don't support multisig natively */ requiresParentTransaction?: boolean; /** Signatures attached to transaction */ signatures: any[]; /** Buffer encoding of transaction data/hash to be signed */ signBuffer: Buffer; /** Add a signature to the set of attached signatures. Automatically de-duplicates values. */ addSignatures(signature: any[]): Promise; setTransaction(transaction: any): Promise; /** Sign the transaction body with private key(s) and add to attached signatures */ sign(privateKeys: PrivateKey[]): Promise; validate(): Promise; }