/**
 * Provider-agnostic LRU cache for lock files.
 *
 * Wraps any LockFileFetcher with an in-memory LRU cache.
 * Cache key: `{repoIdentifier}:{ref}` -- the fetcher handles
 * content-addressable keying internally if the provider supports it.
 *
 * Replaces the old GitHub-specific LockFileCache in github/lockfile.ts.
 */
import { type LockFileFetcher, type LockFile } from '@kici-dev/engine';
export declare class LockFileCache {
    private readonly cache;
    private hits;
    private misses;
    constructor(options: {
        max: number;
        ttl: number;
    });
    /**
     * Fetch the lock file for a repository at a specific ref,
     * using the provided fetcher and LRU caching.
     *
     * @param fetcher - Provider-specific lock file fetcher
     * @param repoIdentifier - Provider-specific repo identifier (e.g., "owner/repo")
     * @param ref - Git ref (branch, tag, or commit SHA)
     * @param credentials - Provider-specific credentials
     * @returns Parsed lock file, or null if not found
     */
    get(fetcher: LockFileFetcher, repoIdentifier: string, ref: string, credentials: unknown): Promise<LockFile | null>;
    /**
     * Get cache statistics for metrics/monitoring.
     */
    getStats(): {
        hits: number;
        misses: number;
        size: number;
    };
}
//# sourceMappingURL=lockfile-cache.d.ts.map