import type { RuntimeArtifactHealth } from '../generators/runtime-artifact-manifest.js'; import type { SupportedTool } from '../types/index.js'; import type { FileWriteEvent } from './file-writer.js'; import { KNOWLEDGE_MANIFEST_PATH } from './knowledge-refresh.js'; export declare const SETUP_MANIFEST_PATH = ".setup-agents/setup-manifest.json"; export declare const SETUP_MANIFEST_SCHEMA_VERSION = 1; export type SetupCompleteness = 'quick' | 'partial' | 'full'; export type SetupArtifactStatus = 'current' | 'missing' | 'stale' | 'drifted' | 'foreign' | 'failed' | 'skipped'; export type SetupArtifactOwner = 'setup-agents' | 'customer'; export type SetupArtifact = { path: string; owner: SetupArtifactOwner; marker: string | null; expectedDigest: string; digest: string | null; status: SetupArtifactStatus; reason?: string; }; export type SetupManifest = { schemaVersion: number; completeness: SetupCompleteness; requestedLevel: 'quick' | 'full'; profiles: string[]; tools: SupportedTool[]; generator: 'setup-agents:local'; pluginVersion: string; sourceDigest: string; expectedArtifacts: Array>; producedArtifacts: SetupArtifact[]; failedReasons: string[]; skippedReasons: string[]; knowledgeManifest: { path: typeof KNOWLEDGE_MANIFEST_PATH; status: 'current' | 'missing'; }; generatedAt?: string; }; export type SetupHealth = { healthy: boolean; completeness: SetupCompleteness | 'unmanaged'; manifest: SetupManifest | null; artifacts: SetupArtifact[]; repairCommand: string; reasons: string[]; runtimeArtifacts: RuntimeArtifactHealth; }; export type SetupRunRecorder = { onWrite(event: FileWriteEvent): void; fail(reason: unknown): void; finalize(): SetupManifest; }; export declare function createSetupRunRecorder(options: { cwd: string; requestedLevel: 'quick' | 'full'; profiles: string[]; tools: SupportedTool[]; generatedAt?: string; }): SetupRunRecorder; export declare function assessSetupHealth(cwd: string): SetupHealth; export declare function readSetupManifest(cwd: string): SetupManifest | null;