export declare const SUBAGENT_TRACKING_SCHEMA_VERSION = 1; export declare const DEFAULT_SUBAGENT_ACTIVE_WINDOW_MS = 120000; export type SubagentAvailabilityStatus = 'available' | 'closed' | 'unavailable'; export interface TrackedSubagentThread { thread_id: string; kind: 'leader' | 'subagent'; first_seen_at: string; last_seen_at: string; completed_at?: string; last_turn_id?: string; last_completed_turn_id?: string; turn_count: number; mode?: string; role?: string; lane_id?: string; scope?: string; agent_nickname?: string; completion_source?: string; status?: SubagentAvailabilityStatus; last_handoff_summary?: string; resume_requested_at?: string; resume_completed_at?: string; resume_failed_at?: string; resume_failure_reason?: string; } export interface TrackedSubagentSession { session_id: string; leader_thread_id?: string; updated_at: string; threads: Record; } export interface SubagentTrackingState { schemaVersion: 1; sessions: Record; } export interface RecordSubagentTurnInput { sessionId: string; threadId: string; turnId?: string; timestamp?: string; mode?: string; role?: string; laneId?: string; scope?: string; agentNickname?: string; kind?: 'leader' | 'subagent'; leaderThreadId?: string; completed?: boolean; completionSource?: string; status?: SubagentAvailabilityStatus; lastHandoffSummary?: string; resumeRequestedAt?: string; resumeCompletedAt?: string; resumeFailedAt?: string; resumeFailureReason?: string; preserveCompletionEvidence?: boolean; } export interface SubagentSessionSummary { sessionId: string; leaderThreadId?: string; allThreadIds: string[]; allSubagentThreadIds: string[]; activeSubagentThreadIds: string[]; savedSubagents: SubagentResumeEntry[]; updatedAt?: string; } export interface SubagentResumeEntry { agentId: string; threadId: string; role?: string; laneId?: string; scope?: string; agentNickname?: string; status: SubagentAvailabilityStatus; } export interface SubagentLedgerEntry extends SubagentResumeEntry { lastSeenAt?: string; completedAt?: string; lastHandoffSummary?: string; resumeRequestedAt?: string; resumeCompletedAt?: string; resumeFailedAt?: string; resumeFailureReason?: string; } export interface SubagentResumeLedger extends SubagentSessionSummary { savedSubagents: SubagentLedgerEntry[]; resumeTargets: SubagentLedgerEntry[]; unavailableSubagents: SubagentLedgerEntry[]; } export declare function subagentTrackingPath(cwd: string): string; export declare function createSubagentTrackingState(): SubagentTrackingState; export declare function isTrustedSubagentThread(session: TrackedSubagentSession | null | undefined, threadId: string): boolean; export declare function normalizeSubagentTrackingState(input: unknown): SubagentTrackingState; export declare function readSubagentTrackingState(cwd: string): Promise; export declare function writeSubagentTrackingState(cwd: string, state: SubagentTrackingState): Promise; export declare function recordSubagentTurn(state: SubagentTrackingState, input: RecordSubagentTurnInput): SubagentTrackingState; export declare function recordSubagentTurnForSession(cwd: string, input: RecordSubagentTurnInput): Promise; export declare function summarizeSubagentSession(state: SubagentTrackingState, sessionId: string, options?: { now?: string | Date; activeWindowMs?: number; }): SubagentSessionSummary | null; export declare function buildSubagentResumeLedger(state: SubagentTrackingState, sessionId: string, options?: { now?: string | Date; activeWindowMs?: number; }): SubagentResumeLedger | null; export declare function readSubagentSessionLedger(cwd: string, sessionId: string, options?: { now?: string | Date; activeWindowMs?: number; }): Promise; export declare function selectReusableSubagentEntry(entries: readonly SubagentLedgerEntry[], criteria?: { role?: string; laneId?: string; scope?: string; agentNickname?: string; }): SubagentLedgerEntry | null; export declare function readSubagentSessionSummary(cwd: string, sessionId: string, options?: { now?: string | Date; activeWindowMs?: number; }): Promise; //# sourceMappingURL=tracker.d.ts.map