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 }