import * as P from 'micro-packed';
import { type Bytes } from './utils.ts';
export declare const TaprootControlBlock: P.CoderType
>;
export declare const PSBTGlobal: {
readonly unsignedTx: readonly [0, false, P.CoderType[];
outputs: P.StructInput<{
amount: /*elided*/ any;
script: /*elided*/ any;
}>[];
lockTime: number;
}>>, readonly [0], readonly [0], false];
readonly xpub: readonly [1, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly txVersion: readonly [2, false, P.CoderType, readonly [2], readonly [2], false];
readonly fallbackLocktime: readonly [3, false, P.CoderType, readonly [], readonly [2], false];
readonly inputCount: readonly [4, false, P.CoderType, readonly [2], readonly [2], false];
readonly outputCount: readonly [5, false, P.CoderType, readonly [2], readonly [2], false];
readonly txModifiable: readonly [6, false, P.CoderType, readonly [], readonly [2], false];
readonly version: readonly [251, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
};
export declare const PSBTInput: {
readonly nonWitnessUtxo: readonly [0, false, P.CoderType[];
outputs: P.StructInput<{
amount: /*elided*/ any;
script: /*elided*/ any;
}>[];
witnesses: P.Option;
lockTime: number;
}>>, readonly [], readonly [0, 2], false];
readonly witnessUtxo: readonly [1, false, P.CoderType>, readonly [], readonly [0, 2], false];
readonly partialSig: readonly [2, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly sighashType: readonly [3, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly redeemScript: readonly [4, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly witnessScript: readonly [5, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly bip32Derivation: readonly [6, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly finalScriptSig: readonly [7, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly finalScriptWitness: readonly [8, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly porCommitment: readonly [9, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly ripemd160: readonly [10, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly sha256: readonly [11, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly hash160: readonly [12, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly hash256: readonly [13, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly txid: readonly [14, false, P.CoderType, readonly [2], readonly [2], true];
readonly index: readonly [15, false, P.CoderType, readonly [2], readonly [2], true];
readonly sequence: readonly [16, false, P.CoderType, readonly [], readonly [2], true];
readonly requiredTimeLocktime: readonly [17, false, P.CoderType, readonly [], readonly [2], false];
readonly requiredHeightLocktime: readonly [18, false, P.CoderType, readonly [], readonly [2], false];
readonly tapKeySig: readonly [19, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapScriptSig: readonly [20, P.CoderType>, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapLeafScript: readonly [21, P.CoderType>, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapBip32Derivation: readonly [22, P.CoderType, P.CoderType;
}>>, readonly [], readonly [0, 2], false];
readonly tapInternalKey: readonly [23, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapMerkleRoot: readonly [24, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
};
export declare const PSBTInputFinalKeys: (keyof TransactionInput)[];
export declare const PSBTInputUnsignedKeys: (keyof TransactionInput)[];
export declare const PSBTOutput: {
readonly redeemScript: readonly [0, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly witnessScript: readonly [1, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly bip32Derivation: readonly [2, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly amount: readonly [3, false, P.CoderType, readonly [2], readonly [2], true];
readonly script: readonly [4, false, P.CoderType, readonly [2], readonly [2], true];
readonly tapInternalKey: readonly [5, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapTree: readonly [6, false, P.CoderType[]>, readonly [], readonly [0, 2], false];
readonly tapBip32Derivation: readonly [7, P.CoderType, P.CoderType;
}>>, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
};
export declare const PSBTOutputUnsignedKeys: (keyof typeof PSBTOutput)[];
type PSBTKeyCoder = P.CoderType | false;
type PSBTKeyMapInfo = Readonly<[
number,
PSBTKeyCoder,
any,
readonly number[],
readonly number[],
boolean
]>;
type PSBTKeyMap = Record;
declare const PSBTUnknownKey: P.CoderType>;
type PSBTUnknownFields = {
unknown?: [P.UnwrapCoder, Bytes][];
};
export type PSBTKeyMapKeys = {
-readonly [K in keyof T]?: T[K][1] extends false ? P.UnwrapCoder : [P.UnwrapCoder, P.UnwrapCoder][];
} & PSBTUnknownFields;
declare function PSBTKeyMap(psbtEnum: T): P.CoderType>;
export declare const PSBTInputCoder: P.CoderType[];
outputs: P.StructInput<{
amount: /*elided*/ any;
script: /*elided*/ any;
}>[];
witnesses: P.Option;
lockTime: number;
}>>, readonly [], readonly [0, 2], false];
readonly witnessUtxo: readonly [1, false, P.CoderType>, readonly [], readonly [0, 2], false];
readonly partialSig: readonly [2, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly sighashType: readonly [3, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly redeemScript: readonly [4, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly witnessScript: readonly [5, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly bip32Derivation: readonly [6, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly finalScriptSig: readonly [7, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly finalScriptWitness: readonly [8, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly porCommitment: readonly [9, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly ripemd160: readonly [10, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly sha256: readonly [11, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly hash160: readonly [12, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly hash256: readonly [13, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly txid: readonly [14, false, P.CoderType, readonly [2], readonly [2], true];
readonly index: readonly [15, false, P.CoderType, readonly [2], readonly [2], true];
readonly sequence: readonly [16, false, P.CoderType, readonly [], readonly [2], true];
readonly requiredTimeLocktime: readonly [17, false, P.CoderType, readonly [], readonly [2], false];
readonly requiredHeightLocktime: readonly [18, false, P.CoderType, readonly [], readonly [2], false];
readonly tapKeySig: readonly [19, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapScriptSig: readonly [20, P.CoderType>, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapLeafScript: readonly [21, P.CoderType>, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapBip32Derivation: readonly [22, P.CoderType, P.CoderType;
}>>, readonly [], readonly [0, 2], false];
readonly tapInternalKey: readonly [23, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapMerkleRoot: readonly [24, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
}>>;
export type ExtendType = {
[K in keyof T]: K extends keyof E ? E[K] | T[K] : T[K];
};
export type RequireType = T & {
[P in K]-?: T[P];
};
export type TransactionInput = P.UnwrapCoder;
export type TransactionInputUpdate = ExtendType;
export declare const PSBTOutputCoder: P.CoderType, readonly [], readonly [0, 2], false];
readonly witnessScript: readonly [1, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly bip32Derivation: readonly [2, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly amount: readonly [3, false, P.CoderType, readonly [2], readonly [2], true];
readonly script: readonly [4, false, P.CoderType, readonly [2], readonly [2], true];
readonly tapInternalKey: readonly [5, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapTree: readonly [6, false, P.CoderType[]>, readonly [], readonly [0, 2], false];
readonly tapBip32Derivation: readonly [7, P.CoderType, P.CoderType;
}>>, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
}>>;
export type TransactionOutput = P.UnwrapCoder;
export type TransactionOutputUpdate = ExtendType;
export type TransactionOutputRequired = {
script: Bytes;
amount: bigint;
};
export declare const _RawPSBTV0: P.CoderType>, readonly [0], readonly [0], false];
readonly xpub: readonly [1, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly txVersion: readonly [2, false, P.CoderType, readonly [2], readonly [2], false];
readonly fallbackLocktime: readonly [3, false, P.CoderType, readonly [], readonly [2], false];
readonly inputCount: readonly [4, false, P.CoderType, readonly [2], readonly [2], false];
readonly outputCount: readonly [5, false, P.CoderType, readonly [2], readonly [2], false];
readonly txModifiable: readonly [6, false, P.CoderType, readonly [], readonly [2], false];
readonly version: readonly [251, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
}>;
inputs: PSBTKeyMapKeys<{
readonly nonWitnessUtxo: readonly [0, false, P.CoderType>, readonly [], readonly [0, 2], false];
readonly witnessUtxo: readonly [1, false, P.CoderType>, readonly [], readonly [0, 2], false];
readonly partialSig: readonly [2, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly sighashType: readonly [3, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly redeemScript: readonly [4, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly witnessScript: readonly [5, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly bip32Derivation: readonly [6, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly finalScriptSig: readonly [7, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly finalScriptWitness: readonly [8, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly porCommitment: readonly [9, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly ripemd160: readonly [10, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly sha256: readonly [11, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly hash160: readonly [12, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly hash256: readonly [13, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly txid: readonly [14, false, P.CoderType, readonly [2], readonly [2], true];
readonly index: readonly [15, false, P.CoderType, readonly [2], readonly [2], true];
readonly sequence: readonly [16, false, P.CoderType, readonly [], readonly [2], true];
readonly requiredTimeLocktime: readonly [17, false, P.CoderType, readonly [], readonly [2], false];
readonly requiredHeightLocktime: readonly [18, false, P.CoderType, readonly [], readonly [2], false];
readonly tapKeySig: readonly [19, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapScriptSig: readonly [20, P.CoderType>, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapLeafScript: readonly [21, P.CoderType>, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapBip32Derivation: readonly [22, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly tapInternalKey: readonly [23, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapMerkleRoot: readonly [24, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
}>[];
outputs: PSBTKeyMapKeys<{
readonly redeemScript: readonly [0, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly witnessScript: readonly [1, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly bip32Derivation: readonly [2, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly amount: readonly [3, false, P.CoderType, readonly [2], readonly [2], true];
readonly script: readonly [4, false, P.CoderType, readonly [2], readonly [2], true];
readonly tapInternalKey: readonly [5, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapTree: readonly [6, false, P.CoderType[]>, readonly [], readonly [0, 2], false];
readonly tapBip32Derivation: readonly [7, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
}>[];
}>>;
export declare const _RawPSBTV2: P.CoderType>, readonly [0], readonly [0], false];
readonly xpub: readonly [1, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly txVersion: readonly [2, false, P.CoderType, readonly [2], readonly [2], false];
readonly fallbackLocktime: readonly [3, false, P.CoderType, readonly [], readonly [2], false];
readonly inputCount: readonly [4, false, P.CoderType, readonly [2], readonly [2], false];
readonly outputCount: readonly [5, false, P.CoderType, readonly [2], readonly [2], false];
readonly txModifiable: readonly [6, false, P.CoderType, readonly [], readonly [2], false];
readonly version: readonly [251, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
}>;
inputs: PSBTKeyMapKeys<{
readonly nonWitnessUtxo: readonly [0, false, P.CoderType>, readonly [], readonly [0, 2], false];
readonly witnessUtxo: readonly [1, false, P.CoderType>, readonly [], readonly [0, 2], false];
readonly partialSig: readonly [2, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly sighashType: readonly [3, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly redeemScript: readonly [4, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly witnessScript: readonly [5, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly bip32Derivation: readonly [6, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly finalScriptSig: readonly [7, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly finalScriptWitness: readonly [8, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly porCommitment: readonly [9, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly ripemd160: readonly [10, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly sha256: readonly [11, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly hash160: readonly [12, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly hash256: readonly [13, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
readonly txid: readonly [14, false, P.CoderType, readonly [2], readonly [2], true];
readonly index: readonly [15, false, P.CoderType, readonly [2], readonly [2], true];
readonly sequence: readonly [16, false, P.CoderType, readonly [], readonly [2], true];
readonly requiredTimeLocktime: readonly [17, false, P.CoderType, readonly [], readonly [2], false];
readonly requiredHeightLocktime: readonly [18, false, P.CoderType, readonly [], readonly [2], false];
readonly tapKeySig: readonly [19, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapScriptSig: readonly [20, P.CoderType>, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapLeafScript: readonly [21, P.CoderType>, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapBip32Derivation: readonly [22, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly tapInternalKey: readonly [23, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapMerkleRoot: readonly [24, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
}>[];
outputs: PSBTKeyMapKeys<{
readonly redeemScript: readonly [0, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly witnessScript: readonly [1, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly bip32Derivation: readonly [2, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly amount: readonly [3, false, P.CoderType, readonly [2], readonly [2], true];
readonly script: readonly [4, false, P.CoderType, readonly [2], readonly [2], true];
readonly tapInternalKey: readonly [5, false, P.CoderType, readonly [], readonly [0, 2], false];
readonly tapTree: readonly [6, false, P.CoderType[]>, readonly [], readonly [0, 2], false];
readonly tapBip32Derivation: readonly [7, P.CoderType, P.CoderType>, readonly [], readonly [0, 2], false];
readonly proprietary: readonly [252, P.CoderType, P.CoderType, readonly [], readonly [0, 2], false];
}>[];
}>>;
export type PSBTRaw = typeof _RawPSBTV0 | typeof _RawPSBTV2;
export declare const _DebugPSBT: P.CoderType[];
}>>;
export declare function cleanPSBTFields(version: number, info: T, lst: PSBTKeyMapKeys): PSBTKeyMapKeys;
export declare function mergeKeyMap(psbtEnum: T, val: PSBTKeyMapKeys, cur?: PSBTKeyMapKeys, allowedFields?: (keyof PSBTKeyMapKeys)[], allowUnknown?: boolean): PSBTKeyMapKeys;
export declare const RawPSBTV0: P.CoderType