export * as address from "./address.js";
export * as ast from "./ast/index.js";
export * as bip322 from "./bip322/index.js";
export * as inscriptions from "./inscriptions.js";
export * as message from "./message.js";
export * as utxolibCompat from "./utxolibCompat.js";
export * as fixedScriptWallet from "./fixedScriptWallet/index.js";
export * as descriptorWallet from "./descriptorWallet/index.js";
export * as bip32 from "./bip32.js";
export * as ecpair from "./ecpair.js";
export { ECPair } from "./ecpair.js";
export { BIP32 } from "./bip32.js";
export { Dimensions } from "./fixedScriptWallet/Dimensions.js";
export { type CoinName, getMainnet, isMainnet, isTestnet, isCoinName } from "./coinName.js";
export type { Triple } from "./triple.js";
export type { AddressFormat } from "./address.js";
export type { TapLeafScript, PreparedInscriptionRevealData } from "./inscriptions.js";
export type DescriptorPkType = "derivable" | "definite" | "string";
export type ScriptContext = "tap" | "segwitv0" | "legacy";
declare module "./wasm/wasm_utxo.js" {
    interface WrapDescriptor {
        /** These are not the same types of nodes as in the ast module */
        node(): unknown;
    }
    namespace WrapDescriptor {
        function fromString(descriptor: string, pkType: DescriptorPkType): WrapDescriptor;
        function fromStringDetectType(descriptor: string): WrapDescriptor;
    }
    interface WrapMiniscript {
        /** These are not the same types of nodes as in the ast module */
        node(): unknown;
    }
    namespace WrapMiniscript {
        function fromString(miniscript: string, ctx: ScriptContext): WrapMiniscript;
        function fromBitcoinScript(script: Uint8Array, ctx: ScriptContext): WrapMiniscript;
    }
    /** BIP32 derivation data from a PSBT */
    interface PsbtBip32Derivation {
        pubkey: Uint8Array;
        path: string;
    }
    /** Witness UTXO data from a PSBT input */
    interface PsbtWitnessUtxo {
        script: Uint8Array;
        value: bigint;
    }
    /** Raw PSBT input data returned by getInputs() */
    interface PsbtInputData {
        witnessUtxo: PsbtWitnessUtxo | null;
        bip32Derivation: PsbtBip32Derivation[];
        tapBip32Derivation: PsbtBip32Derivation[];
    }
    /** Raw PSBT output data returned by getOutputs() */
    interface PsbtOutputData {
        script: Uint8Array;
        value: bigint;
        bip32Derivation: PsbtBip32Derivation[];
        tapBip32Derivation: PsbtBip32Derivation[];
    }
    /** PSBT output data with resolved address, returned by getOutputsWithAddress() */
    interface PsbtOutputDataWithAddress extends PsbtOutputData {
        address: string;
    }
    /** Outpoint referencing a previous transaction output */
    interface TxOutPoint {
        txid: string;
        vout: number;
    }
    /** Raw transaction input data returned by Transaction.getInputs() */
    interface TxInputData {
        previousOutput: TxOutPoint;
        sequence: number;
        scriptSig: Uint8Array;
        witness: Uint8Array[];
    }
    /** Raw transaction output data returned by Transaction.getOutputs() */
    interface TxOutputData {
        script: Uint8Array;
        value: bigint;
    }
    /** Transaction output data with resolved address */
    interface TxOutputDataWithAddress extends TxOutputData {
        address: string;
    }
}
export { WrapDescriptor as Descriptor } from "./wasm/wasm_utxo.js";
export { WrapMiniscript as Miniscript } from "./wasm/wasm_utxo.js";
export { Psbt } from "./descriptorWallet/Psbt.js";
export { DashTransaction, Transaction, ZcashTransaction, type ITransaction, type ITransactionCommon, } from "./transaction.js";
export { hasPsbtMagic, type IPsbt, type IPsbtWithAddress } from "./psbt.js";
