///
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;
}