import type { RegisteredProject } from "./project-registry.js";
export type PreflightLevel = "pass" | "warn" | "fail";
export interface PreflightCheckRemediation {
    kind: "archive-bobbit" | "use-canonical" | "shorter-path" | "free-space" | "external";
    label: string;
    payload?: Record<string, unknown>;
}
export interface PreflightCheck {
    id: string;
    level: PreflightLevel;
    title: string;
    detail: string;
    remediation?: PreflightCheckRemediation;
}
export interface PreflightReport {
    rootPath: string;
    canonical: string;
    checks: PreflightCheck[];
    hasFail: boolean;
}
export interface PreflightContext {
    /** Snapshot of currently registered projects (excluding hidden). */
    registeredProjects: ReadonlyArray<Pick<RegisteredProject, "id" | "name" | "rootPath" | "hidden">>;
    /** Gateway's `getProjectRoot()` — used to detect `bobbit.gateway-owned`. */
    gatewayProjectRoot: string;
    /** Project worktree root lookup (defaults to `<rootPath>-wt`). */
    worktreeRootFor?: (project: {
        id: string;
        rootPath: string;
    }) => string | undefined;
}
/**
 * Run the full preflight check set against `rootPath`.
 * Always returns a report — failures are the response, not exceptions.
 */
export declare function runPreflight(rootPath: string, ctx: PreflightContext): PreflightReport;
//# sourceMappingURL=project-preflight.d.ts.map