import { WasmDashTransaction, WasmTransaction, WasmZcashTransaction } from "./wasm/wasm_utxo.js";
/**
 * Common interface for all transaction types
 */
export interface ITransaction {
    toBytes(): Uint8Array;
    getId(): string;
}
/**
 * Transaction wrapper (Bitcoin-like networks)
 *
 * Provides a camelCase, strongly-typed API over the snake_case WASM bindings.
 */
export declare class Transaction implements ITransaction {
    private _wasm;
    private constructor();
    static fromBytes(bytes: Uint8Array): Transaction;
    /**
     * @internal Create from WASM instance directly (avoids re-parsing bytes)
     */
    static fromWasm(wasm: WasmTransaction): Transaction;
    toBytes(): Uint8Array;
    /**
     * Get the transaction ID (txid)
     *
     * The txid is the double SHA256 of the transaction bytes (excluding witness
     * data for segwit transactions), displayed in reverse byte order as is standard.
     *
     * @returns The transaction ID as a hex string
     */
    getId(): string;
    /**
     * Get the virtual size of the transaction
     *
     * Virtual size accounts for the segwit discount on witness data.
     *
     * @returns The virtual size in virtual bytes (vbytes)
     */
    getVSize(): number;
    /**
     * @internal
     */
    get wasm(): WasmTransaction;
}
/**
 * Zcash Transaction wrapper
 *
 * Provides a camelCase, strongly-typed API over the snake_case WASM bindings.
 */
export declare class ZcashTransaction implements ITransaction {
    private _wasm;
    private constructor();
    static fromBytes(bytes: Uint8Array): ZcashTransaction;
    /**
     * @internal Create from WASM instance directly (avoids re-parsing bytes)
     */
    static fromWasm(wasm: WasmZcashTransaction): ZcashTransaction;
    toBytes(): Uint8Array;
    /**
     * Get the transaction ID (txid)
     *
     * The txid is the double SHA256 of the full Zcash transaction bytes,
     * displayed in reverse byte order as is standard.
     *
     * @returns The transaction ID as a hex string
     */
    getId(): string;
    /**
     * @internal
     */
    get wasm(): WasmZcashTransaction;
}
/**
 * Dash Transaction wrapper (supports EVO special transactions)
 *
 * Round-trip only: bytes -> parse -> bytes.
 */
export declare class DashTransaction implements ITransaction {
    private _wasm;
    private constructor();
    static fromBytes(bytes: Uint8Array): DashTransaction;
    /**
     * @internal Create from WASM instance directly (avoids re-parsing bytes)
     */
    static fromWasm(wasm: WasmDashTransaction): DashTransaction;
    toBytes(): Uint8Array;
    /**
     * Get the transaction ID (txid)
     *
     * The txid is the double SHA256 of the full Dash transaction bytes,
     * displayed in reverse byte order as is standard.
     *
     * @returns The transaction ID as a hex string
     */
    getId(): string;
    /**
     * @internal
     */
    get wasm(): WasmDashTransaction;
}
