/**
 * Heuristic Project-Type Inference
 *
 * Fallback used by `project-status` (and any other `kind: status` aggregator)
 * when contributor discovery returns zero in-use contributors. Detects what
 * kind of project this is from cheap local signals — manifest files, file
 * extensions, basic git presence — so the report still says something useful
 * for projects that have not opted into AIWG contributors.
 *
 * Local-only by design: no network calls, no `npm outdated`, no GitHub API.
 * The whole inference returns in O(few hundred ms) on a typical repo because
 * it only checks a small number of well-known paths and runs a handful of
 * bounded globs.
 *
 * @architecture @.aiwg/architecture/decisions/ADR-023-contributor-discovery-convention.md
 * @issue #941
 */
/**
 * Discriminator for the kind of dimension a heuristic detected. Future
 * dimensions register by adding a string here without breaking consumers.
 */
export type HeuristicDimensionKind = 'code' | 'docs' | 'assets' | 'mixed' | string;
/**
 * One dimension of the inferred project type. A project may have several —
 * a code repo with a docs/ subdir surfaces both `code` and `docs`. The
 * `confidence` field is a coarse signal-strength indicator the caller can
 * surface in the report ("(high confidence)").
 */
export interface HeuristicDimension {
    kind: HeuristicDimensionKind;
    /** Coarse confidence: 'high' = strong signal, 'medium' = present but mixed, 'low' = weak */
    confidence: 'high' | 'medium' | 'low';
    /** Human-readable summary line for the dimension. */
    summary: string;
    /** Structured detail rows for verbose output / --json. */
    details: Array<{
        label: string;
        value: string;
    }>;
}
export interface HeuristicReport {
    /** Always 'heuristic' so callers can stamp `origin: heuristic` on the block. */
    origin: 'heuristic';
    /** Dimensions in priority order: code, docs, assets, then anything else. */
    dimensions: HeuristicDimension[];
    /** True when no signals fired and the report has nothing to show. */
    empty: boolean;
}
/**
 * Run all heuristic detectors and return a unified report. The caller
 * decides whether to surface this to the user — typically only when
 * `discoverContributors()` returns zero in-use contributors.
 */
export declare function inferProjectType(projectRoot: string): Promise<HeuristicReport>;
//# sourceMappingURL=heuristic.d.ts.map