import type { ArchetypeSignal } from './scan-types.js'; /** Each list entry is the evidence CLASS returned to the caller, so the report * can say what it saw instead of only the verdict. */ export declare const FRONTEND_FRAMEWORK_DEPS: string[]; export declare const FRONTEND_STYLE_DEPS: string[]; export declare const FRONTEND_APPLICATION_ROOTS: string[]; /** Upper bound on directory entries inspected per scan. An absent signal is the * common case (every CLI and library), so the walk must stop even in a huge * tree; a miss costs one skipped UI flow, a false positive costs a wrong * project classification. */ export declare const FRONTEND_EVIDENCE_MAX_ENTRIES = 2000; export declare function readRootBin(projectRoot: string): Promise; /** `null` when the repository has no positive frontend signal. Order is * deliberate: a framework dep is stronger than a style dep, which is stronger * than a file that could be a one-off. */ export declare function detectFrontendEvidence(projectRoot: string, deps: Record): Promise; /** The two report signals this probe contributes, so the archetype service does * not spend its line budget rebuilding them. */ export declare function frontendSignals(hasBin: boolean, evidence: string | null): ArchetypeSignal[];