import type { ExtractionMode } from './generation-policy.js'; import type { ExtractionStrategy } from './indexing.js'; export declare const WATCHER_STATE_VERSION: 1; export type WatcherStatus = 'starting' | 'idle' | 'pending' | 'reconciling' | 'failed' | 'stopped'; export type WatcherCoverage = 'unknown' | 'complete' | 'failed'; export type WatcherEventMode = 'recursive-events' | 'polling'; export interface WatcherStateV1 { version: typeof WATCHER_STATE_VERSION; pid: number; started_at: string; updated_at: string; status: WatcherStatus; coverage: WatcherCoverage; event_mode: WatcherEventMode; reconciliation_count: number; last_reconciliation_at: string | null; last_reconciliation_duration_ms: number | null; last_reconciliation_file_count: number | null; last_reconciliation_directory_count: number | null; current_interval_ms: number; next_reconciliation_at: string | null; pending_since: string | null; failure_reason: string | null; stored_policy_fingerprint: string | null; current_policy_fingerprint: string | null; policy_match: boolean | null; /** Persisted for observability; old watcher-state files omit these fields. */ requested_extraction_mode?: ExtractionMode | null; extraction_strategy_buckets?: Partial> | null; } export declare function parseWatcherState(value: unknown): WatcherStateV1 | null; export declare function watcherStateBlocksGraphReads(state: WatcherStateV1): boolean;