/**
 * Greenfield/Brownfield project discovery & classification (Phase 5).
 *
 * Classifies a project directory as either:
 *   - **greenfield**: empty or nearly-empty, no code, no git history
 *   - **brownfield**: existing codebase with files, possibly git history
 *
 * Used by `cleo init` (Phase 5 bootstrap) to choose the correct seed
 * pipeline:
 *   - Greenfield → seed a Vision/PRD "research" epic so the agent starts
 *     from a blank-slate planning posture
 *   - Brownfield → invoke codebase mapping and anchor findings in BRAIN as
 *     baseline context (per ULTRAPLAN §1 "Context Anchoring")
 *
 * Classification is intentionally simple and transparent — no heuristics,
 * no ML, just file/directory presence checks. A project qualifies as
 * brownfield if ANY of these are true:
 *   - `.git/` directory exists (under a size threshold we still treat as
 *     brownfield since history matters)
 *   - source files exist under common source dirs (src, lib, app, packages)
 *   - any manifest file exists (package.json, Cargo.toml, go.mod, pyproject.toml)
 *   - markdown docs already exist (README.md, docs/)
 *
 * @task Phase 5 — Greenfield/brownfield bootstrap + context anchoring
 */
/**
 * Classification result for a project directory.
 */
export interface ProjectClassification {
    /** Project type: 'greenfield' (empty/new) or 'brownfield' (existing). */
    kind: 'greenfield' | 'brownfield';
    /** Absolute path that was classified. */
    directory: string;
    /** Signal list — which indicators led to the classification. */
    signals: ClassificationSignal[];
    /** Total non-hidden files found at the top level (for reporting). */
    topLevelFileCount: number;
    /** Whether a `.git/` directory is present. */
    hasGit: boolean;
}
/** A single classification signal detected on the filesystem. */
export interface ClassificationSignal {
    /** Canonical signal id for programmatic handling. */
    id: 'git-dir' | 'source-dir' | 'package-manifest' | 'docs' | 'rust-manifest' | 'go-manifest' | 'python-manifest' | 'readme' | 'empty';
    /** Human-readable description of what was detected. */
    description: string;
    /** File or directory that triggered this signal. */
    path: string;
}
/**
 * Classify a project directory as greenfield or brownfield.
 *
 * Read-only — never mutates the filesystem. Safe to call at any time.
 *
 * @param directory - Absolute or relative path; defaults to process.cwd()
 * @returns Classification result with signals and metadata
 *
 * @example
 * ```typescript
 * const classification = classifyProject('/my/project');
 * if (classification.kind === 'greenfield') {
 *   // Seed initial Vision epic
 * } else {
 *   // Run codebase mapping
 * }
 * ```
 */
export declare function classifyProject(directory?: string): ProjectClassification;
//# sourceMappingURL=discovery.d.ts.map