import BasePool from "./base.js"; export type SinglePoolConnectionEntry = { /** * - Active users of the connection. */ activeCheckoutCount: number; /** * - Nested checkout names. */ checkoutNames: string[]; /** * - Owned driver. */ connection: import("../drivers/base.js").default; /** * - Whether frontend tenant lifecycle ownership retains this entry. */ lifecycleRetained: boolean; /** * - Whether normal ambient use retains this idle entry. */ retained: boolean; /** * - Physical configuration reuse key. */ reuseKey: string; }; export type SinglePoolPendingCheckout = { /** * - Checkout name. */ checkoutName: string | undefined; /** * - Rejects if closeAll owns cancellation. */ closePromise?: Promise; /** * - Enqueue timestamp. */ enqueuedAt: number; /** * - Rejects a capacity waiter during closeAll. */ reject: (error: Error) => void; /** * - Physical configuration reuse key. */ reuseKey: string; /** * - Timeout timestamp. */ timeoutAt: number | null; /** * - Configured timeout. */ timeoutMillis: number | null; }; export default class VelociousDatabasePoolSingleMultiUser extends BasePool { connection: import("../drivers/base.js").default | undefined; activeCheckoutCount: number; suppressedConnectionContextCount: number; operationLeaseQueue: Promise; connectionsBeingSpawned: number; /** @type {Map} */ connectionEntries: Map; /** @type {Map>} */ connectionEntrySpawnPromises: Map>; /** @type {Map>} */ capturedOperationQueues: Map>; /** @type {SinglePoolPendingCheckout[]} */ pendingCheckouts: SinglePoolPendingCheckout[]; /** @type {Set<() => boolean>} */ capacityWaiters: Set<() => boolean>; closeGeneration: number; /** @type {Map} */ testSharedConnectionsByReuseKey: Map; /** * Checks a connection back into its keyed physical entry. * @param {import("../drivers/base.js").default} connection - Connection. * @returns {Promise} - Resolves when cleanup completes. */ checkin(connection: import("../drivers/base.js").default): Promise; /** * Permanently removes and closes a checked-out connection. * @param {import("../drivers/base.js").default} connection - Connection that must not return to the pool. */ discard(connection: import("../drivers/base.js").default): Promise; /** * Checks out the ambient configuration and retains it as the single mutable * browser fallback connection. * @param {import("./base.js").ConnectionCheckoutOptions} [options] - Checkout options. * @returns {Promise} - Checked-out connection. */ checkout(options?: import("./base.js").ConnectionCheckoutOptions): Promise; /** * Checks out an explicitly captured physical configuration. * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Captured configuration. * @param {import("./base.js").ConnectionCheckoutOptions} [options] - Checkout options. * @param {{retain: boolean}} [args] - Whether this becomes the ambient retained connection. * @returns {Promise} - Checked-out connection. */ checkoutForConfiguration(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType, options?: import("./base.js").ConnectionCheckoutOptions, { retain }?: { retain: boolean; }): Promise; /** * Ensures capacity exists for another physical connection. * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Requested configuration. * @param {{name?: string, reuseKey: string}} options - Pending checkout identity. * @returns {Promise} - Resolves when capacity is available. */ reserveConnectionCapacity(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType, options: { name?: string; reuseKey: string; }): Promise; /** * Waits for pool capacity with normal timeout and closeAll ownership. * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Requested configuration. * @param {{name?: string, reuseKey: string}} options - Pending checkout identity. * @returns {Promise} - Resolves on a capacity change. */ waitForCapacity(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType, options: { name?: string; reuseKey: string; }): Promise; /** * Runs with connection. * @template T * @param {import("./base.js").ConnectionCheckoutOptions | ((arg: import("../drivers/base.js").default) => Promise)} optionsOrCallback - Options or callback. * @param {(arg: import("../drivers/base.js").default) => Promise} [callback] - Callback. * @returns {Promise} - Callback result. */ withConnection(optionsOrCallback: import("./base.js").ConnectionCheckoutOptions | ((arg: import("../drivers/base.js").default) => Promise), callback?: (arg: import("../drivers/base.js").default) => Promise): Promise; openCapturedConnection(/** @type {import("../../configuration-types.js").DatabaseConfigurationType} */ databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): Promise; flushCapturedConnection(/** @type {import("../../configuration-types.js").DatabaseConfigurationType} */ databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): Promise; closeCapturedConnection(/** @type {import("../../configuration-types.js").DatabaseConfigurationType} */ databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): Promise; deleteCapturedDatabase(/** @type {import("../../configuration-types.js").DatabaseConfigurationType} */ databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): Promise; capturedConnectionInUse(/** @type {import("../../configuration-types.js").DatabaseConfigurationType} */ databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): boolean; capturedConnectionHasPendingWrites(/** @type {import("../../configuration-types.js").DatabaseConfigurationType} */ databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): boolean; /** * Runs a legacy ambient operation under one pool-wide FIFO lease. * @template T * @param {import("./base.js").ConnectionCheckoutOptions} options - Checkout options. * @param {(connection: import("../drivers/base.js").default, owner: symbol) => Promise} callback - Callback. * @returns {Promise} - Callback result. */ withOperationConnection(options: import("./base.js").ConnectionCheckoutOptions, callback: (connection: import("../drivers/base.js").default, owner: symbol) => Promise): Promise; /** * Runs a captured operation under a FIFO lease scoped only to its physical * database identity, so unrelated tenant databases remain concurrent. * @template T * @param {import("./base.js").CapturedConnectionOptions} options - Captured options. * @param {(connection: import("../drivers/base.js").default, owner: symbol) => Promise} callback - Callback. * @returns {Promise} - Callback result. */ withCapturedOperationConnection({ databaseConfiguration, name }: import("./base.js").CapturedConnectionOptions, callback: (connection: import("../drivers/base.js").default, owner: symbol) => Promise): Promise; /** * Runs one callback with an installed driver operation lease. * @template T * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Physical configuration. * @param {import("./base.js").ConnectionCheckoutOptions} options - Checkout options. * @param {{retain: boolean}} checkoutArgs - Checkout retention. * @param {(connection: import("../drivers/base.js").default, owner: symbol) => Promise} callback - Callback. * @returns {Promise} - Callback result. */ runOwnedOperation(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType, options: import("./base.js").ConnectionCheckoutOptions, checkoutArgs: { retain: boolean; }, callback: (connection: import("../drivers/base.js").default, owner: symbol) => Promise): Promise; /** * Waits for a same-physical-database operation queue turn. * @param {Promise} previousTurn - Previous queue tail. * @param {SinglePoolPendingCheckout | undefined} pending - Pending debug entry. * @returns {Promise} - Resolves when the previous turn releases. */ waitForOperationTurn(previousTurn: Promise, pending: SinglePoolPendingCheckout | undefined): Promise; /** * Runs without current connection context. * @template T * @param {() => T} callback - Callback. * @returns {T} - Callback result. */ withoutCurrentConnectionContext(callback: () => T): T; /** Clears schema metadata on every live physical connection. */ clearSchemaCache(): void; /** Closes every pool-owned connection and rejects queued capacity requests. */ closeAll(): Promise; /** * Returns the mutable ambient fallback connection. * @returns {import("../drivers/base.js").default} - Mutable ambient fallback connection. */ getCurrentConnection(): import("../drivers/base.js").default; /** * Registers an attempt-owned connection for exactly one physical configuration. * @param {import("../drivers/base.js").default} connection - Attempt-owned connection. * @param {string} reuseKey - Resolved physical configuration identity. * @returns {import("./base.js").TestSharedConnectionRegistration} - Opaque registration handle. */ setTestSharedConnectionForConfiguration(connection: import("../drivers/base.js").default, reuseKey: string): import("./base.js").TestSharedConnectionRegistration; /** * Clears an attempt-owned shared physical connection without revoking a newer owner. * @param {import("./base.js").TestSharedConnectionRegistration} [registration] - Registration to clear conditionally. */ clearTestSharedConnection(registration?: import("./base.js").TestSharedConnectionRegistration): void; /** * Resolves the attempt-owned connection for the current physical configuration. * @returns {import("../drivers/base.js").default | undefined} - Shared connection. */ testSharedConnection(): import("../drivers/base.js").default | undefined; /** * Returns the current context fallback connection when it is not suppressed. * @returns {import("../drivers/base.js").default | undefined} - Current fallback connection. */ getCurrentContextConnection(): import("../drivers/base.js").default | undefined; /** * Returns whether fallback context is available. * @returns {boolean} - Whether fallback context is available. */ hasCurrentConnectionContext(): boolean; /** * Returns pool diagnostics for retained and temporary keyed connections. * @returns {import("./base.js").DatabasePoolDebugSnapshot} - Pool diagnostics. */ getDebugSnapshot(): import("./base.js").DatabasePoolDebugSnapshot; /** * Returns the configured connection maximum. * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Physical configuration. * @returns {number | null} - Configured connection maximum. */ maxConnections(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): number | null; /** * Returns the configured checkout timeout. * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Physical configuration. * @returns {number | null} - Configured checkout timeout. */ checkoutTimeoutMillis(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): number | null; /** * Returns whether another physical connection may be spawned. * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Physical configuration. * @returns {boolean} - Whether another physical connection may be spawned. */ canSpawnConnection(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): boolean; /** * Atomically claims one connection slot without yielding. * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Physical configuration whose maximum applies. * @returns {boolean} - Whether a slot was reserved. */ tryReserveConnectionCapacity(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType): boolean; /** Releases one previously claimed connection slot. */ releaseConnectionCapacityReservation(): void; /** * Spawns and tracks a physical connection entry. * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Physical configuration. * @param {string} reuseKey - Physical reuse key. * @param {number} closeGeneration - Pool lifecycle generation at spawn start. * @returns {Promise} - New entry. */ spawnConnectionEntry(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType, reuseKey: string, closeGeneration: number): Promise; /** * Removes and closes an entry. * @param {import("../drivers/base.js").default} connection - Connection. * @returns {SinglePoolConnectionEntry | undefined} - Entry owning a connection. */ entryForConnection(connection: import("../drivers/base.js").default): SinglePoolConnectionEntry | undefined; /** * Adds a same-key operation pending entry. * @param {SinglePoolConnectionEntry} entry - Entry to close. * @returns {Promise} - Resolves after close. */ removeAndCloseEntry(entry: SinglePoolConnectionEntry): Promise; /** Wakes all capacity waiters to re-check the bounded pool. */ notifyCapacityWaiters(): void; /** * Adds a same-key operation pending entry. * @param {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfiguration - Physical configuration. * @param {{name?: string, reuseKey: string}} options - Pending identity. * @returns {SinglePoolPendingCheckout} - Added same-key operation pending entry. */ addOperationPendingCheckout(databaseConfiguration: import("../../configuration-types.js").DatabaseConfigurationType, { name, reuseKey }: { name?: string; reuseKey: string; }): SinglePoolPendingCheckout; /** * Removes a pending checkout debug entry. * @param {SinglePoolPendingCheckout} pending - Pending entry. * @returns {void} */ removePendingCheckout(pending: SinglePoolPendingCheckout): void; } //# sourceMappingURL=single-multi-use.d.ts.map