import { type CacheBindingInvalidation } from '../models/CacheBindingInvalidation.js'; import { type GetPlanOptions } from '../models/GetPlanOptions.js'; import { type NonCachedServiceNodeContext } from '../models/NonCachedServiceNodeContext.js'; import { type PlanResult } from '../models/PlanResult.js'; import { type PlanServiceNode } from '../models/PlanServiceNode.js'; /** * Service to cache plans. * * This class is used to cache plans and to notify PlanService subscribers when the cache is cleared. * The cache should be cleared when a new binding is registered or when a binding is unregistered. * * Subscribers are supposed to be plan services from child containers. * * Ancestor binding constraints are the reason to avoid reusing plans from plan children nodes. */ export declare class PlanResultCacheService { #private; constructor(); clearCache(): void; get(options: GetPlanOptions): PlanResult | undefined; invalidateServiceBinding(invalidation: CacheBindingInvalidation): void; set(options: GetPlanOptions, planResult: PlanResult): void; setNonCachedServiceNode(node: PlanServiceNode, context: NonCachedServiceNodeContext): void; subscribe(subscriber: PlanResultCacheService): void; } //# sourceMappingURL=PlanResultCacheService.d.ts.map