import { PatternInvalidator } from './pattern-invalidator'; import { TagInvalidator, TagInvalidatorOptions } from './tag-invalidator'; import { VersionInvalidator, VersionInvalidatorOptions } from './version-invalidator'; export { PatternInvalidator, TagInvalidator, VersionInvalidator }; export type { TagInvalidatorOptions, VersionInvalidatorOptions }; /** * Factory function to create the appropriate invalidator based on method * @param method Invalidation method * @param provider Cache provider * @param options Invalidator options * @returns Cache invalidator instance */ export function createInvalidator( method: 'tag' | 'pattern' | 'version', provider: any, options?: any ) { switch (method) { case 'tag': return new TagInvalidator(provider, options); case 'pattern': return new PatternInvalidator(provider, options); case 'version': return new VersionInvalidator(provider, options); default: throw new Error(`Unknown invalidation method: ${method}`); } }