import { TransactionStatus } from '../../../sdk/types';
import { TrxToken } from '../../../sdk/WalletStorage.interfaces';
import { TableOutput } from '../tables/TableOutput';
import { TableTransaction } from '../tables/TableTransaction';
import { EntityBase, EntityStorage, SyncMap } from './EntityBase';
import { EntityProvenTx } from './EntityProvenTx';
import { Transaction as BsvTransaction, TransactionInput } from '@bsv/sdk';
export declare class EntityTransaction extends EntityBase<TableTransaction> {
    /**
     * @returns @bsv/sdk Transaction object from parsed rawTx.
     * If rawTx is undefined, returns undefined.
     */
    getBsvTx(): BsvTransaction | undefined;
    /**
     * @returns array of @bsv/sdk TransactionInput objects from parsed rawTx.
     * If rawTx is undefined, an empty array is returned.
     */
    getBsvTxIns(): TransactionInput[];
    /**
     * Returns an array of "known" inputs to this transaction which belong to the same userId.
     * Uses both spentBy and rawTx inputs (if available) to locate inputs from among user's outputs.
     * Not all transaction inputs correspond to prior storage outputs.
     */
    getInputs(storage: EntityStorage, trx?: TrxToken): Promise<TableOutput[]>;
    constructor(api?: TableTransaction);
    updateApi(): void;
    get transactionId(): number;
    set transactionId(v: number);
    get created_at(): Date;
    set created_at(v: Date);
    get updated_at(): Date;
    set updated_at(v: Date);
    get version(): number | undefined;
    set version(v: number | undefined);
    get lockTime(): number | undefined;
    set lockTime(v: number | undefined);
    get isOutgoing(): boolean;
    set isOutgoing(v: boolean);
    get status(): TransactionStatus;
    set status(v: TransactionStatus);
    get userId(): number;
    set userId(v: number);
    get provenTxId(): number | undefined;
    set provenTxId(v: number | undefined);
    get satoshis(): number;
    set satoshis(v: number);
    get txid(): string | undefined;
    set txid(v: string | undefined);
    get reference(): string;
    set reference(v: string);
    get inputBEEF(): number[] | undefined;
    set inputBEEF(v: number[] | undefined);
    get description(): string;
    set description(v: string);
    get rawTx(): number[] | undefined;
    set rawTx(v: number[] | undefined);
    get id(): number;
    set id(v: number);
    get entityName(): string;
    get entityTable(): string;
    equals(ei: TableTransaction, syncMap?: SyncMap | undefined): boolean;
    static mergeFind(storage: EntityStorage, userId: number, ei: TableTransaction, syncMap: SyncMap, trx?: TrxToken): Promise<{
        found: boolean;
        eo: EntityTransaction;
        eiId: number;
    }>;
    mergeNew(storage: EntityStorage, userId: number, syncMap: SyncMap, trx?: TrxToken): Promise<void>;
    mergeExisting(storage: EntityStorage, since: Date | undefined, ei: TableTransaction, syncMap: SyncMap, trx?: TrxToken): Promise<boolean>;
    getProvenTx(storage: EntityStorage, trx?: TrxToken): Promise<EntityProvenTx | undefined>;
}
//# sourceMappingURL=EntityTransaction.d.ts.map