export type ComponentState = 'ok' | 'failed' | 'degraded' | 'absent' | 'lazy' | 'skipped'; export interface ComponentStatus { id: string; label: string; required: boolean; status: ComponentState; detail?: string; disables?: string; } export interface SetupSummary { lines: string[]; readyCount: number; total: number; requiredFailed: boolean; exitCode: 0 | 1; } export declare function glyph(s: ComponentState): string; export declare function summarizeSetup(components: ComponentStatus[]): SetupSummary; /** * True when the persisted config references a stored LLM key — WITHOUT reading * the secret itself. A key is referenced by a `KeyLocation` pointer (see * propagation.ts); the raw value is never written to config. Recognizing that * pointer is what keeps the honest summary from falsely reporting "LLM key * absent" on every env-less probe after a key was persisted on a prior run. */ export declare function configReferencesLlmKey(cfg: { provider?: { keyLocation?: unknown; }; settings: Record; }): boolean; export interface ProbeDeps { browserInstalled: () => boolean; searchBackend: () => 'core' | 'searxng' | 'hybrid'; searxngReady: () => boolean; embeddingsInstalled: () => boolean; rerankerInstalled: () => boolean; llmKeyPresent: () => boolean; configuredAgents: () => readonly string[]; } export interface ProbeOptions { /** * Whether agent registration was requested/expected — true when the user * gave `--agents=<...>` or went through the interactive agent-selection step. * When false, this is engine-only mode: no agent is registered on purpose, so * the agents component is neither required nor a failure. Defaults to true so * a caller that omits it never silently drops the "agent failed to register" * guard (case b): agents requested but registration failed still fails setup. */ agentsRequested?: boolean; } export declare function probeSetupStatus(deps: ProbeDeps, options?: ProbeOptions): Promise; export declare function defaultProbeDeps(): ProbeDeps; //# sourceMappingURL=setup-status.d.ts.map