import type { OfficeAddress } from "../types.js"; import type { ConversationRuntimeState, SessionLifecycleOptions } from "./types.js"; export declare class SessionLifecycle { private readonly states; private readonly closing; private readonly transitions; private readonly queues; private readonly leases; private readonly settlementSessions; private readonly pendingConversationClears; private readonly conversationGenerations; private readonly maxSessions; private readonly idleTimeoutMs; private readonly now; private globalGeneration; private shuttingDown; private readonly materializationAbort; constructor(options?: SessionLifecycleOptions); get(address: OfficeAddress, sessionKey: string): ConversationRuntimeState | undefined; set(state: ConversationRuntimeState): void; acquire(address: OfficeAddress, sessionKey: string, materialize: (signal: AbortSignal) => Promise): Promise<{ state: ConversationRuntimeState; release: () => void; }>; private reusableState; private publishMaterialized; private materializeExclusive; private createLeaseRelease; private releaseLease; settle(state: ConversationRuntimeState, work: () => Promise, options?: { markRunning?: boolean; }): Promise; private finishSettlement; settlementCount(): number; enqueue(address: OfficeAddress, sessionKey: string, run: () => Promise): Promise; runningStates(): ConversationRuntimeState[]; offices(): OfficeAddress[]; invalidateConversation(address: OfficeAddress): boolean; invalidateAll(): { busy: OfficeAddress[]; }; clearConversation(address: OfficeAddress): boolean; deferConversationClear(address: OfficeAddress): void; private applyDeferredClear; private hasActiveWork; private isStateActive; private discardConversation; private generation; transition(address: OfficeAddress, sessionKey: string, work: () => Promise): Promise; discardAndWait(address: OfficeAddress, sessionKey: string): Promise; waitForClose(address: OfficeAddress, sessionKey: string): Promise; closeAll(): Promise; private discard; private trackClosing; evictIdle(): void; shutdown(timeoutMs: number): Promise; private waitForMaterializations; private waitForActiveWork; private activeWorkCount; private detachedSessionIds; } //# sourceMappingURL=session-lifecycle.d.ts.map