import type { CacheDependency, DependencyData } from '../interfaces'; /** * Wrapper for cached value with dependency data */ export interface CachedValueWithDependencies { value: T; dependencies?: DependencyData[]; cachedAt: number; } /** * Utility class for managing cache dependencies */ export declare class DependencyManager { /** * Wrap a value with its dependencies * * @param value - The value to cache * @param dependencies - Array of dependencies * @returns Wrapped value with dependency data */ static wrapWithDependencies(value: T, dependencies?: CacheDependency[]): Promise>; /** * Capture current state of all dependencies * * @param dependencies - Array of dependencies * @returns Array of dependency data snapshots */ static captureDependencies(dependencies: CacheDependency[]): Promise; /** * Check if any dependencies have changed * * @param dependencies - Current dependencies * @param cachedDependencies - Previously captured dependency data * @returns true if any dependency has changed */ static areDependenciesChanged(dependencies: CacheDependency[], cachedDependencies?: DependencyData[]): Promise; /** * Unwrap cached value and validate dependencies * * @param wrapped - Wrapped cached value * @param dependencies - Current dependencies to check * @returns Unwrapped value if valid, null if dependencies changed */ static unwrapAndValidate(wrapped: CachedValueWithDependencies | null, dependencies?: CacheDependency[]): Promise; /** * Get which dependencies have changed * * @param dependencies - Current dependencies * @param cachedDependencies - Previously captured dependency data * @returns Array of changed dependency keys */ static getChangedDependencies(dependencies: CacheDependency[], cachedDependencies?: DependencyData[]): Promise; /** * Serialize dependencies for storage * * @param dependencies - Dependency data * @returns Serialized string */ static serializeDependencies(dependencies: DependencyData[]): string; /** * Deserialize dependencies from storage * * @param serialized - Serialized string * @returns Dependency data array */ static deserializeDependencies(serialized: string): DependencyData[]; }