import { Address } from './encoding/address.js'; import { EncodedMultisig } from './types/transactions/encoded.js'; /** Utilities for manipulating multisig transaction blobs. */ /** * Required options for creating a multisignature * * Documentation available at: https://developer.algorand.org/docs/get-details/transactions/signatures/#multisignatures */ export interface MultisigMetadata { /** * Multisig version */ version: number; /** * Multisig threshold value. Authorization requires a subset of signatures, * equal to or greater than the threshold value. */ threshold: number; /** * A list of Algorand addresses representing possible signers for this multisig. Order is important. */ addrs: Array; } export declare function pksFromAddresses(addrs: Array): Uint8Array[]; /** * fromMultisigPreImg takes multisig parameters and returns a 32 byte typed array public key, * representing an address that identifies the "exact group, version, and public keys" that are required for signing. * Hash("MultisigAddr" || version uint8 || threshold uint8 || PK1 || PK2 || ...) * Encoding this output yields a human readable address. * @param version - multisig version * @param threshold - multisig threshold * @param pks - array of typed array public keys */ export declare function addressFromMultisigPreImg({ version, threshold, pks, }: Omit & { pks: Uint8Array[]; }): Address; /** * fromMultisigPreImgAddrs takes multisig parameters and returns a human readable Algorand address. * This is equivalent to fromMultisigPreImg, but interfaces with encoded addresses. * @param version - multisig version * @param threshold - multisig threshold * @param addrs - array of encoded addresses */ export declare function addressFromMultisigPreImgAddrs({ version, threshold, addrs, }: MultisigMetadata): Address; export declare function verifyMultisig(toBeVerified: Uint8Array, msig: EncodedMultisig, publicKey: Uint8Array): boolean; /** * multisigAddress takes multisig metadata (preimage) and returns the corresponding human readable Algorand address. * @param version - multisig version * @param threshold - multisig threshold * @param addrs - list of Algorand addresses */ export declare function multisigAddress({ version, threshold, addrs, }: MultisigMetadata): Address;