export type CacheOptions = {
    ttl?: number;
    maxSize?: number;
};
export type CacheEntry<T> = {
    value: T;
    timestamp: number;
    ttl: number;
    fileHashes?: Record<string, string>;
    authContext?: string;
};
export type Cache<T> = {
    get(key: string): T | undefined;
    set(key: string, value: T, ttl?: number): void;
    clear(): void;
    size(): number;
    has(cacheKey: string): boolean;
};
export type FileBasedCacheEntry<T> = {
    value: T;
    timestamp: number;
    ttl: number;
    fileHashes: Record<string, FileModificationInfo>;
    authContext: string;
    resourceHash: string;
};
export type FileModificationInfo = {
    filePath: string;
    lastModified: number;
    hash: string;
};
export type CacheKeyComponents = {
    resourceId: string;
    authContext: string;
    resourceHash: string;
    fileHashes: Record<string, FileModificationInfo>;
};
