import type { SessionRegistryCreateOptions, SessionRegistryEntry, SessionRegistryOptions, SessionRegistrySession, SessionRegistrySweepOptions } from "./registry-types.ts"; export { isTerminalSessionExited, sessionIdPrefix } from "./registry-session.ts"; export type { InitialSessionRegistryEntry, MaybePromise, SessionRegistryCreateContext, SessionRegistryCreateOptions, SessionRegistryEntry, SessionRegistryOptions, SessionRegistrySession, SessionRegistrySweepOptions, TerminalSessionSignal, TerminalSessionState, TrackedDetachedChild, } from "./registry-types.ts"; export { SessionRegistryCapacityError } from "./registry-types.ts"; export declare class SessionRegistry { private readonly entries; private readonly idCounters; private readonly createSession; private readonly killProcess; private readonly now; private readonly platform; private sequence; readonly maxSessions: number; private readonly stopExitGraceMs; private readonly forcedExitGraceMs; private readonly detachedExitGraceMs; constructor(options?: SessionRegistryOptions); get size(): number; list(): readonly SessionRegistryEntry[]; get(id: string): SessionRegistryEntry | null; create(options?: SessionRegistryCreateOptions): Promise>; sweepExited(options?: SessionRegistrySweepOptions): Promise; stop(id: string): Promise; stopAll(): Promise; teardown(): Promise; private createSessionWithFactory; private addEntry; private handleSessionExit; private enforceCapacityForCreate; private pruneExitedUntilAtMost; private findLeastRecentlyUsedExited; private stopEntry; /** * SIGKILL a session that outlived the graceful stop. Only a session that even * survives the forced signal (or exposes no way to be signalled) stays * `stopping`; everything else settles as `exited`. */ private forceKillEntry; private cleanupDetachedChildren; private cleanupDetachedChildrenOnce; private refreshExitedStates; private refreshEntryState; private markExited; private removeEntry; private allocateId; private observeId; private timestamp; } //# sourceMappingURL=registry.d.ts.map