/**
 * HonoCache — in-memory LRU cache for HonoAppModel.
 *
 * Design decisions (spec D4 + adversarial review fixes):
 * - True LRU: delete+set on hit to maintain insertion-order-based recency
 * - Deep freeze on insert: prevent tool-cross-mutation of shared model
 * - Concurrent build protection: in-flight promise deduplication
 * - Path canonicalization in invalidate() for consistent matching
 * - Session-scoped (no persistence): cleared on process exit
 *
 * Spec: docs/specs/2026-04-10-hono-framework-intelligence-spec.md
 * Plan: docs/specs/2026-04-10-hono-framework-intelligence-plan.md (Task 10)
 */
import type { HonoAppModel } from "../parser/extractors/hono-model.js";
interface Extractor {
    parse(entryFile: string): Promise<HonoAppModel>;
}
export declare class HonoCache {
    private entries;
    private building;
    private maxEntries;
    constructor(maxEntries?: number);
    /**
     * Get the HonoAppModel for a repo. Builds on miss, returns cached on hit.
     * Concurrent calls during cold start share the same in-flight promise.
     * Returned model is deeply frozen — do NOT attempt to mutate.
     */
    get(repo: string, entryFile: string, extractor: Extractor): Promise<HonoAppModel>;
    /**
     * Synchronous peek — returns the cached model without building.
     * Returns null on miss. Does NOT reorder LRU (peek is passive).
     * Used by findDeadCode and other hot paths that cannot await.
     */
    peek(repo: string): HonoAppModel | null;
    /**
     * Invalidate any cache entry whose files_used contains the given path.
     * Canonicalizes via realpath before comparison for symlink/extension safety.
     */
    invalidate(absolutePath: string): void;
    /**
     * Clear cache entries. If repo is provided, only that repo's entries.
     * Otherwise clears all.
     */
    clear(repo?: string): void;
    private enforceLRU;
}
/** Singleton instance for the application. */
export declare const honoCache: HonoCache;
export {};
//# sourceMappingURL=hono-cache.d.ts.map