import { FeatureFlagModuleOptions } from '../interfaces/feature-flag-options.interface'; import { CreateFeatureFlagInput, UpdateFeatureFlagInput, SetOverrideInput, RemoveOverrideInput, FeatureFlagWithOverrides, FlagMutationMetadata } from '../interfaces/feature-flag.interface'; import { EvaluationContext } from '../interfaces/evaluation-context.interface'; import { CacheAdapter } from '../interfaces/cache-adapter.interface'; import { FeatureFlagRepository } from '../interfaces/feature-flag-repository.interface'; import { FlagEvaluatorService } from './flag-evaluator.service'; import { FlagContextResolver } from './flag-context-resolver'; import { FlagEventPublisher } from './flag-event-publisher'; import { BooleanEvaluationDetails, EvaluateBooleanOptions } from '../interfaces/evaluation-details.interface'; export declare class FeatureFlagService { private readonly options; private readonly repository; private readonly cacheAdapter; private readonly evaluator; private readonly contextResolver; private readonly eventPublisher; constructor(options: FeatureFlagModuleOptions, repository: FeatureFlagRepository, cacheAdapter: CacheAdapter, evaluator: FlagEvaluatorService, contextResolver: FlagContextResolver, eventPublisher: FlagEventPublisher); private get cacheTtlMs(); isEnabled(flagKey: string, explicitContext?: EvaluationContext, evaluationOptions?: EvaluateBooleanOptions): Promise; evaluateBoolean(flagKey: string, explicitContext?: EvaluationContext, evaluationOptions?: EvaluateBooleanOptions): Promise; evaluateAll(explicitContext?: EvaluationContext): Promise>; create(input: CreateFeatureFlagInput, metadata?: FlagMutationMetadata): Promise; update(key: string, input: UpdateFeatureFlagInput, metadata?: FlagMutationMetadata): Promise; archive(key: string, metadata?: FlagMutationMetadata): Promise; setOverride(key: string, input: SetOverrideInput, metadata?: FlagMutationMetadata): Promise; findAll(): Promise; invalidateCache(): Promise; findByKey(key: string): Promise; removeOverride(key: string, input: RemoveOverrideInput, metadata?: FlagMutationMetadata): Promise; private normalizeOverrideAttributes; /** * Best-effort cache invalidation for mutation paths. * DB write already succeeded — cache failure should not fail the caller. * Stale entries self-heal via TTL (default 30s). */ private safeInvalidateCache; private resolveFlag; private resolveAllFlags; private defaultDetails; private resolveDefaultValue; private shouldTrackExposure; private emitEvaluation; private emitExposure; }