/** * Reference resolver system for handling element references. * Supports lazy loading, caching, and various reference types. */ import { Reference } from './IElement.js'; export interface IReferenceResolver { resolve(ref: Reference): Promise; cache(ref: Reference, data: any): Promise; invalidate(ref: Reference): Promise; resolveMany(refs: Reference[]): Promise; invalidateAll(): Promise; getCacheSize(): number; clearCache(): Promise; setCacheLimit(limit: number): void; } export interface ResolvedReference { reference: Reference; data: any; resolvedAt: Date; expiresAt?: Date; fromCache: boolean; error?: Error; } export interface IResolutionStrategy { canResolve(ref: Reference): boolean; resolve(ref: Reference): Promise; getCacheKey(ref: Reference): string; } export interface IReferenceCache { get(key: string): Promise; set(key: string, data: CachedReference): Promise; delete(key: string): Promise; clear(): Promise; size(): number; } export interface CachedReference { data: any; cachedAt: Date; expiresAt?: Date; reference: Reference; } export interface IReferenceValidator { validate(ref: Reference): ReferenceValidationResult; validateUri(uri: string, type: Reference['type']): boolean; sanitizeUri(uri: string): string; } export interface ReferenceValidationResult { valid: boolean; errors?: string[]; sanitizedReference?: Reference; } //# sourceMappingURL=IReferenceResolver.d.ts.map