import { type FeatureDecision, type FeatureKey, type FeatureOwner, type FeatureSnapshot, type ResolveOptions } from "./feature-flags.js"; export interface FeatureCacheStore { revisions(): Promise>; snapshot(keys: string[]): Promise; } /** One poll at a time; complete per-feature replacement makes unset observable. */ export declare class FeatureFlagCache { private readonly store; private readonly readTimeoutMs; private features; private initialized; private loading; private stopped; private listeners; private lastError; private lastCheckedAt; private lastLoadedAt; constructor(store: FeatureCacheStore, readTimeoutMs?: number); private read; resolve(key: FeatureKey, owner: FeatureOwner | null | undefined, options: ResolveOptions): FeatureDecision; onChange(listener: () => void): () => void; get state(): { appliedRevisions: { [k: string]: string; }; supportedKeys: string[]; protocolVersion: number; initialized: boolean; lastCheckedAt: string | null; lastLoadedAt: string | null; lastError: string | null; }; pollRevisionsAndRefresh(): Promise; private refresh; stop(): Promise; } //# sourceMappingURL=feature-flag-cache.d.ts.map