export interface RepoMap {
    /** Schema version for forward-compatible evolution. */
    version: number;
    /** Absolute path to the project root that was scanned. */
    root: string;
    /** Detected framework / language identifiers, e.g. ["typescript","node"]. */
    frameworks: string[];
    /** Detected package manager, e.g. "npm", "yarn", "pnpm", "pip", "cargo". */
    packageManager?: string;
    /** Shell command to run the test suite, e.g. "npm test". */
    testCommand?: string;
    /** Shell command to run type-check / lint, e.g. "npm run typecheck". */
    checkCommand?: string;
    /** Shell command to build the project, e.g. "npm run build". */
    buildCommand?: string;
    /**
     * Relative paths (from root) the agent must never edit.
     * May include glob-style patterns such as "dist/**" or "*.lock".
     */
    doNotEdit: string[];
    /** Relative paths of detected entry-point files. */
    entryPoints: string[];
    /** Key subdirectory names present in the project root. */
    keyDirs: string[];
    /** Detected config / manifest file names at the project root. */
    configFiles: string[];
    /** ISO 8601 timestamp when this map was built. */
    builtAt: string;
    /** SHA-256 of the sorted file list — used to detect tampering with the stored map. */
    contentHash?: string;
    /**
     * Optional hand-written notes appended by the caller.
     * Surfaced verbatim in the system prompt block.
     */
    notes?: string;
}
/**
 * Scan `projectDir` and produce a `RepoMap`.
 * This is the main entry point for building a map from scratch.
 */
export declare function buildRepoMap(projectDir: string): Promise<RepoMap>;
/** Save a repo map to `<projectDir>/.harness/repo-map.json`. */
export declare function saveRepoMap(repoMap: RepoMap, projectDir: string): Promise<void>;
/**
 * Load a previously-saved repo map from `<projectDir>/.harness/repo-map.json`.
 * Returns `undefined` if the file does not exist or cannot be parsed.
 */
export declare function loadRepoMap(projectDir: string): Promise<RepoMap | undefined>;
/**
 * Load map from disk; build and save a fresh one if absent or stale.
 * This is the recommended high-level entry point for callers that want
 * caching behaviour.
 */
export declare function getOrBuildRepoMap(projectDir: string, opts?: {
    maxAgeMs?: number;
}): Promise<RepoMap>;
/** Returns true when the map is older than `maxAgeMs` (default 24 h). */
export declare function isStale(repoMap: RepoMap, maxAgeMs?: number): boolean;
/**
 * Render a concise Markdown block for injection into the agent system prompt.
 * Kept compact so it doesn't crowd out the real task context.
 */
export declare function renderRepoMapBlock(map: RepoMap): string;
//# sourceMappingURL=repoMap.d.ts.map