import { type PoolOptions } from 'mysql2/promise'; export interface MySQLSessionManagerOptions { mysql: PoolOptions; token: string; testRunTs?: string; poolSize?: number; } export declare class MySQLSessionManager { private readonly options; private rpcServer?; private readonly databases; private readonly poolSize; private readonly logger; private nextFrontendConnectionId; private nextBackendConnectionId; constructor(options: MySQLSessionManagerOptions); get port(): number; start(): Promise; stop(): Promise; private handle; private ensureDatabase; private releaseDatabase; private ensureGroup; private reserveSlot; private reserveAvailableSlot; private wakeSlotWaiter; private createSlot; private prepareSchema; private completeSchema; private acquire; private release; private run; private runIsolatedSlotStatement; private requireReadySlot; private findSlotByLeaseId; private findSlotByOwner; private ensureConnection; private enqueueSlot; private ensurePersistentTransaction; private restartPersistentTransaction; private resetConnectionAfterLease; private runManagedTransactionCommand; private destroySlot; private createDatabase; private dropDatabase; private adminConnection; private createDatabaseName; private failSchemaPreparation; private closeBackendConnection; private logSlot; private debugSlot; private slotLogData; private groupLogData; private createConnectionId; private logManagedSessionSqlSignal; private throwRuntimeDdl; private traceManagedSessionSql; } //# sourceMappingURL=mysql-session-manager.d.ts.map