/** * Routes semantic-index startup progress (`EmbsearchState`) to the right user * surface: in interactive mode a transient footer line via the shared * `startupProgress` store; otherwise a dim stderr log line. * * Extracted from main.ts so the mapping — which phase shows what, and which * phases stay silent — is unit-testable without booting the whole CLI. */ import type { EmbsearchState } from "./embsearch-service.js"; /** * Stable footer key for the semantic index. The binary download and the index * build are one logical piece of startup work, so they share one evolving line * (Downloading… → Building…) that disappears once the index is ready/skipped. */ export declare const SEMANTIC_INDEX_PROGRESS_KEY = "semantic-index"; export interface EmbsearchProgressSink { /** True in the interactive TUI (route to the footer store); false logs to stderr. */ interactive: boolean; /** Non-interactive log sink; defaults to a dim `console.error`. Injectable for tests. */ log?: (message: string) => void; } /** * Apply one `EmbsearchState` update to the chosen surface. * * Interactive: downloading/indexing show a live footer line, unavailable shows a * transient error notice, and ready/skipped drop the line. It is deliberately * NOT a task-panel row — index progress is startup status, not agent work. * * Non-interactive: logs indexing/ready/skipped/unavailable, but stays silent on * the per-chunk `downloading` ticks (they would spam the log) and on `idle`. */ export declare function reportEmbsearchProgress(state: EmbsearchState, sink: EmbsearchProgressSink): void; //# sourceMappingURL=embsearch-progress.d.ts.map