import type { ManualAuditLogInput } from '../interfaces/audit-entry.interface'; /** A Prisma client exposing the public interactive transaction API. */ export interface ManualAuditTransactionHost { $transaction: (...args: any[]) => any; } /** Infer the generated client's transaction models without importing a Prisma client. */ export type ManualAuditTransactionClient = TClient extends { $transaction(callback: (tx: infer TTransactionClient) => Promise, options?: any): Promise; } ? TTransactionClient : never; export interface ManualAuditTransactionOptions { maxWait?: number; timeout?: number; /** The Prisma runtime, adapter and database must support this isolation level. */ isolationLevel?: 'ReadUncommitted' | 'ReadCommitted' | 'RepeatableRead' | 'Snapshot' | 'Serializable'; } export interface ManualAuditTransactionScope { readonly tx: TTransactionClient; /** Always writes on this scope's transaction; await it to observe errors locally. */ readonly log: (input: ManualAuditLogInput) => Promise; } /** * Own an official Prisma transaction and bind manual audit writes to it. * An audit failure prevents commit even when caught by the callback. Started * audit calls settle before completion; scheduling new calls after the callback * returns is not supported. Existing external transactions remain caller-owned. */ export declare function runManualAuditTransaction(client: TClient, logFn: (input: ManualAuditLogInput, tx: ManualAuditTransactionClient) => Promise, callback: (scope: ManualAuditTransactionScope>) => Promise, options?: ManualAuditTransactionOptions): Promise; //# sourceMappingURL=manual-audit-transaction.d.ts.map