import type { Multiplexer } from '../types'; export interface CmuxSessionEvent { type: string; properties?: { info?: { id?: string; parentID?: string; title?: string; directory?: string; sessionID?: string; }; part?: { sessionID?: string; }; sessionID?: string; status?: { type: string; }; }; } interface BackgroundJobs { deferIfRunning(session: string): boolean; clearDeferredClose(session: string): void; } export interface CmuxSessionLifecycleOptions { now?: () => number; delay?: (milliseconds: number) => Promise; deferredRetryMs?: number; deferredTtlMs?: number; missingGraceMs?: number; closeRetryMs?: number; closeRetryTtlMs?: number; closeRetryMaxAttempts?: number; orphanCooldownMs?: number; shutdownTimeoutMs?: number; isServerRunning?: (url: string) => Promise; fetchStatuses?: () => Promise>; } export declare class CmuxSessionLifecycle { private readonly owner; private readonly multiplexer; private readonly resolveServerUrl; private readonly defaultDirectory; private readonly backgroundJobs?; private readonly store; private readonly policy; private readonly now; private readonly delay; private readonly injectedDelay; private readonly deferredRetryMs; private readonly deferredTtlMs; private readonly missingGraceMs; private readonly closeRetryMs; private readonly shutdownTimeoutMs; private readonly serverCheck; private readonly fetchStatuses; private pollTimer?; private polling; private cleanupPromise?; private disposed; private spawnGeneration; constructor(owner: string, multiplexer: Multiplexer, resolveServerUrl: () => string | null, defaultDirectory: string, backgroundJobs?: BackgroundJobs | undefined, options?: CmuxSessionLifecycleOptions); onSessionCreated(event: CmuxSessionEvent): Promise; onSessionStatus(event: CmuxSessionEvent): Promise; onSessionDeleted(event: CmuxSessionEvent): Promise; closeSessionFromCoordinator(session: string): Promise; cleanup(): Promise; /** Runs one status pass; exposed for deterministic lifecycle tests. */ pollOnce(): Promise; private spawn; private spawnOperation; private deferSpawn; private cancelDeferred; private activity; private requestClose; private attemptClose; private scheduleCooldown; private poll; private startPolling; private updatePolling; private runCleanup; private attemptCloseWithoutTimer; private adoptAndClose; private closeLatePane; private trackStalePane; private eventSession; private timer; private loadStatuses; } export {};