/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
/**
 * Discovery domain state — tracks the project index, file watcher state,
 * and language server availability for the active project.
 */
/** Status of the project index. */
export type IndexStatus = 'uninitialized' | 'indexing' | 'ready' | 'stale' | 'error';
/** A language server registration. */
export interface LanguageServerRecord {
    /** Language identifier (e.g. 'typescript', 'python'). */
    language: string;
    /** LSP server command. */
    command: string;
    /** Whether the server is currently running. */
    running: boolean;
    /** Server PID when running. */
    pid?: number | undefined;
    /** Whether the server is ready to handle requests. */
    ready: boolean;
    /** Epoch ms when the server started. */
    startedAt?: number | undefined;
    /** Last LSP error message. */
    lastError?: string | undefined;
}
/** File watcher status. */
export interface FileWatcherStatus {
    /** Whether the file watcher is active. */
    active: boolean;
    /** Number of paths being watched. */
    watchedPaths: number;
    /** Number of events received since session start. */
    eventCount: number;
    /** Epoch ms of the last file change event. */
    lastEventAt?: number | undefined;
}
/**
 * DiscoveryDomainState — project index, file watcher, and LSP state.
 */
export interface DiscoveryDomainState {
    /** Monotonic revision counter; increments on every mutation. */
    revision: number;
    /** Timestamp of last mutation (Date.now()). */
    lastUpdatedAt: number;
    /** Subsystem that triggered the last mutation. */
    source: string;
    /** Current project index status. */
    indexStatus: IndexStatus;
    /** Total number of files in the project index. */
    fileCount: number;
    /** Total number of directories indexed. */
    dirCount: number;
    /** Epoch ms of the last index completion. */
    lastIndexedAt?: number | undefined;
    /** Indexing duration in ms of the last run. */
    lastIndexDurationMs?: number | undefined;
    /** Error message if indexStatus === 'error'. */
    indexError?: string | undefined;
    /** File watcher status. */
    fileWatcher: FileWatcherStatus;
    /** Language server records keyed by language identifier. */
    languageServers: Map<string, LanguageServerRecord>;
    /** Number of language servers currently running and ready. */
    activeServerCount: number;
    /** Whether the tree-sitter WASM runtime is loaded. */
    treeSitterReady: boolean;
    /** Languages with loaded tree-sitter grammars. */
    treeSitterLanguages: string[];
}
/**
 * Returns the default initial state for the discovery domain.
 */
export declare function createInitialDiscoveryState(): DiscoveryDomainState;
//# sourceMappingURL=discovery.d.ts.map