import { ContractEntity } from '../../domain/entities/ContractEntity'; import { ContractRegistry } from './ContractRegistry'; import { IContractRepository } from '../../domain/repositories/IContractRepository'; import { IDomainEventPublisher } from '../../domain/shared/events'; import { ICache } from '../../domain/services/caching/interfaces'; import { Result } from '../../shared/result'; import { ValidationError } from '../../domain/errors/ValidationError'; import { IContractRegistry } from './IContractRegistry'; import { RegistryStats } from './RegistryStats'; /** * Cached Contract Registry - Decorates ContractRegistry with caching capabilities * Implements cache-aside pattern for optimal performance */ export declare class CachedContractRegistry extends ContractRegistry implements IContractRegistry { private readonly cache; private readonly cacheTtl; constructor(repository: IContractRepository, eventPublisher: IDomainEventPublisher | undefined, cache: ICache, cacheTtl?: number); /** * Check if contract exists with caching */ exists(contractId: string): Promise>; /** * Get registry statistics */ getStats(): RegistryStats; /** * Clear local registry and cache (for testing) */ clear(): void; /** * Get contract by ID with caching */ getById(contractId: string): Promise>; /** * Get contract by name with caching */ getByName(name: string): Promise>; /** * Get contracts by category with caching */ getByCategory(category: string): Promise>; /** * Get all contracts with caching */ getAll(): Promise>; /** * Get active contracts with caching */ getActive(): Promise>; /** * Register contract and invalidate related caches */ register(contract: ContractEntity): Promise>; /** * Unregister contract and invalidate related caches */ unregister(contractId: string): Promise>; /** * Refresh registry and clear all caches */ refresh(): Promise>; /** * Get cache statistics */ getCacheStats(): Promise; /** * Manually invalidate specific cache entries */ invalidateCache(pattern: string): Promise; /** * Warm up cache with frequently accessed contracts */ warmupCache(): Promise; private invalidateContractCaches; } //# sourceMappingURL=CachedContractRegistry.d.ts.map