import type { Selectable } from 'kysely';
import type * as Db from '../Db.js';
import type * as db_Schema from '../Schema.js';
/** Columns of the `funding_transfer_transactions` table. */
export type Table = db_Schema.FundingTransferTransaction;
/** One verified transaction reference on a transfer. */
export type Record = Selectable
;
/**
* Inserts a transaction reference, lowercasing EVM hashes while preserving
* other references. Repeats return `undefined`; conflicting source ownership throws.
*/
export declare function insert(db: Db.Db, record: Record): Promise;
/** Claims a source transaction for one transfer without racing another transfer. */
export declare function claimSource(db: Db.Db, record: Record): Promise;
export declare namespace claimSource {
/** Source transaction ownership outcome. */
type Result = {
record: Record;
type: 'claimed';
} | {
record: Record;
type: 'replayed';
} | {
type: 'conflict';
};
}
/** Gets the transfer that owns one source transaction reference. */
export declare function getSource(db: Db.Db, options: getSource.Options): Promise;
export declare namespace getSource {
/** Source transaction identity. */
type Options = {
/** CAIP-2 chain containing the transaction. */
chainId: string;
/** EVM transaction hash or case-sensitive chain reference. */
transactionRef: string;
};
}
/** Removes one source transaction only when the transfer still owns it. */
export declare function removeSource(db: Db.Db, options: removeSource.Options): Promise;
export declare namespace removeSource {
/** Exact source evidence identity and owner. */
type Options = {
/** CAIP-2 chain containing the transaction. */
chainId: string;
/** Source transaction reference. */
transactionHash: string;
/** Owning transfer id (`ftr_…`). */
transferId: string;
};
}
/** Lists a transfer's transaction references, oldest first. */
export declare function listByTransfer(db: Db.Db, transferId: string): Promise;
//# sourceMappingURL=fundingTransferTransactions.d.ts.map