import type { BasicLogger, FeatureFlagPayload, FeatureFlagsAndPayloads, FeatureFlagsContext, IFeatureFlagsProvider, ITelemetryService } from "@cline/shared"; import { type FeatureFlag } from "@cline/shared"; type CacheInfo = { updateTime: number; userId: string | null; flagsPayload?: FeatureFlagsAndPayloads; }; export type FeatureFlagsCacheSnapshot = CacheInfo; export interface FeatureFlagsServiceOptions { provider: IFeatureFlagsProvider; telemetry?: ITelemetryService; logger?: BasicLogger; cacheTtlMs?: number; cacheFilePath?: string; persistentCacheMaxAgeMs?: number; context?: FeatureFlagsContext; } export declare class FeatureFlagsService { private readonly provider; private readonly telemetry?; private readonly logger?; private readonly cacheTtlMs; private readonly cacheFilePath?; private readonly persistentCacheMaxAgeMs; private context; private cache; private cacheInfo; constructor(options: FeatureFlagsServiceOptions); setContext(context: FeatureFlagsContext): void; hydrateCache(snapshot: FeatureFlagsCacheSnapshot): void; getCacheSnapshot(): FeatureFlagsCacheSnapshot; poll(userId?: string | null): Promise; private hydrateFromPersistentCache; private isFeatureFlagPayload; private readPayloadRecord; private readPersistentCache; private writePersistentCache; private getReturnedFlagKeys; private rebuildCacheFromSnapshot; private getFeatureFlag; getBooleanFlagEnabled(flagName: FeatureFlag): boolean; getFlagPayload(flagName: FeatureFlag): FeatureFlagPayload | undefined; getProvider(): IFeatureFlagsProvider; get enabled(): boolean; getSettings(): import("@cline/shared").FeatureFlagsSettings; test(flagName: FeatureFlag, value: boolean): void; dispose(): Promise; } export {};