import { Result } from "../common/result"; import { DatabaseSession } from "../data/database-session"; import { DatabaseSessionRegistry } from "../data/database-session-registry"; export type TransactionSessionRef = { session: DatabaseSession; registry: DatabaseSessionRegistry; }; export declare abstract class Transaction { readonly id: string; protected sessions: DatabaseSession[]; protected sessionRefs: TransactionSessionRef[]; protected components: unknown[]; constructor(...args: unknown[]); init(): DatabaseSession[]; getSessionRefs(): TransactionSessionRef[]; dispose(): void; abstract execute(...args: unknown[]): Promise>; abort(message?: string): void; }