import { WasmDashTransaction, WasmTransaction, WasmZcashTransaction } from "./wasm/wasm_utxo.js";
/**
 * Transaction wrapper (Bitcoin-like networks)
 *
 * Provides a camelCase, strongly-typed API over the snake_case WASM bindings.
 */
export class Transaction {
    _wasm;
    constructor(_wasm) {
        this._wasm = _wasm;
    }
    static fromBytes(bytes) {
        return new Transaction(WasmTransaction.from_bytes(bytes));
    }
    toBytes() {
        return this._wasm.to_bytes();
    }
    /**
     * @internal
     */
    get wasm() {
        return this._wasm;
    }
}
/**
 * Zcash Transaction wrapper
 *
 * Provides a camelCase, strongly-typed API over the snake_case WASM bindings.
 */
export class ZcashTransaction {
    _wasm;
    constructor(_wasm) {
        this._wasm = _wasm;
    }
    static fromBytes(bytes) {
        return new ZcashTransaction(WasmZcashTransaction.from_bytes(bytes));
    }
    toBytes() {
        return this._wasm.to_bytes();
    }
    /**
     * @internal
     */
    get wasm() {
        return this._wasm;
    }
}
/**
 * Dash Transaction wrapper (supports EVO special transactions)
 *
 * Round-trip only: bytes -> parse -> bytes.
 */
export class DashTransaction {
    _wasm;
    constructor(_wasm) {
        this._wasm = _wasm;
    }
    static fromBytes(bytes) {
        return new DashTransaction(WasmDashTransaction.from_bytes(bytes));
    }
    toBytes() {
        return this._wasm.to_bytes();
    }
    /**
     * @internal
     */
    get wasm() {
        return this._wasm;
    }
}
