import { ByteString, FixedArray, SmartContract, UTXO } from 'scrypt-ts'; import { btc } from './btc'; import { SupportedNetwork } from './constants'; import { TapLeafSmartContract } from './tapLeafSmartContract'; import { Optional } from './utils'; import { MAX_STATE } from '../contracts/utils/txUtil'; type AliasedContract = { alias?: string; contract: SmartContract; }; export interface StatefulCovenantUtxo { utxo: UTXO; txoStateHashes: FixedArray; } export declare abstract class Covenant { tapLeafContracts: Record; readonly tpubkey: string; readonly lockingScript: btc.Script; readonly address: string; readonly asmVersion: string; state?: StateT; utxo?: UTXO; constructor(subContracts: Array, options: { lockedAsmVersion: string; network?: SupportedNetwork; }); static calculateAsmVersion(subContractMd5: string[]): string; abstract serializedState(): ByteString; bindToUtxo(utxo: Optional): this; get lockingScriptHex(): ByteString; getTapLeafContract(alias?: string): TapLeafSmartContract; getSubContract(alias?: string): SmartContract; next(state: StateT): Covenant; get stateHash(): ByteString; getSubContractCallArg(inputWitness: Buffer[], method: string, argName: string, alias?: string): import("scryptlib").SupportedParamType; } export {}; //# sourceMappingURL=covenant.d.ts.map