/// import EventEmitter from 'events'; import { FeatureConfig, Segment } from './openapi'; import { AsyncKeyValueStore, KeyValueStore, Query } from './types'; export interface Repository extends Query { setFlag(identifier: string, fc: FeatureConfig): Promise; setSegment(identifier: string, segment: Segment): Promise; deleteFlag(identifier: string): Promise; deleteSegment(identifier: string): Promise; } export declare enum RepositoryEvent { FLAG_STORED = "flag_stored", FLAG_DELETED = "flag_deleted", SEGMENT_STORED = "segment_stored", SEGMENT_DELETED = "segment_deleted" } export declare class StorageRepository implements Repository { private cache; private store; private eventBus; constructor(cache: KeyValueStore, store?: AsyncKeyValueStore, eventBus?: EventEmitter); setFlag(identifier: string, fc: FeatureConfig): Promise; setSegment(identifier: string, segment: Segment): Promise; deleteFlag(identifier: string): Promise; deleteSegment(identifier: string): Promise; getFlag(identifier: string, cacheable?: boolean): Promise; getSegment(identifier: string, cacheable?: boolean): Promise; findFlagsBySegment(segment: string): Promise; private isFlagOutdated; private isSegmentOutdated; private sortSegmentServingRules; private formatFlagKey; private formatSegmentKey; }