import type { initMemoryDb } from "../data/memory/schema.js"; type ThreadStatus = "running" | "dormant" | "dead" | "unknown"; interface CollectedThread { threadId: number; name: string; pid: number | undefined; alive: boolean; hasActiveSession: boolean; hasRecentWait: boolean; sessionCount: number; lastActivity: number | undefined; spawnedStartedAt: number | undefined; registryStatus: string | undefined; keepAlive: boolean; } export declare function classifyThreadHealth(t: CollectedThread): ThreadStatus; /** Filters for {@link getThreadsHealth}. Defaults are deliberately narrow — see below. */ export interface ThreadsHealthOptions { /** Restrict to one status, or "all" for everything. Default: live threads only. */ status?: ThreadStatus | "all"; /** Max rows to render. Default {@link DEFAULT_HEALTH_LIMIT}. */ limit?: number; /** Include dead/unknown threads alongside the live ones. */ includeDead?: boolean; } /** * Render the thread health report. * * Defaults to **live threads only**. The registry accumulates every thread ever * created — hundreds, nearly all dead — and rendering one row each cost ~78k * tokens per call, which is most of a context window spent on rows nobody reads. * Hidden threads are still counted in a roll-up line, so nothing is silently * dropped; pass `status: "all"` or `includeDead: true` to see them. */ export declare function getThreadsHealth(getMemoryDb: () => ReturnType, options?: ThreadsHealthOptions): Promise; export {}; //# sourceMappingURL=thread-health.service.d.ts.map