import type { TxInputData, TxOutputData, TxOutputDataWithAddress } from "./wasm/wasm_utxo.js";
import type { CoinName } from "./coinName.js";
import type { ITransaction } from "./transaction.js";
interface WasmTransactionLike {
    input_count(): number;
    output_count(): number;
    version(): number;
    lock_time(): number;
    to_bytes(): Uint8Array;
    get_txid(): string;
    get_inputs(): unknown;
    get_outputs(): unknown;
    get_outputs_with_address(coin: string): unknown;
}
export declare abstract class TransactionBase<W extends WasmTransactionLike> implements ITransaction {
    protected _wasm: W;
    constructor(wasm: W);
    inputCount(): number;
    outputCount(): number;
    version(): number;
    lockTime(): number;
    toBytes(): Uint8Array;
    getId(): string;
    getInputs(): TxInputData[];
    getOutputs(): TxOutputData[];
    getOutputsWithAddress(coin: CoinName): TxOutputDataWithAddress[];
}
export {};
