/// <reference types="node" />
import type { LogProvider } from '../../logger';
import type { IFeatureToggleClient, IFeatureToggleClientStore, IFeatureToggleQuery, IFlagResolver } from '../../types';
import type EventEmitter from 'events';
import type { Db } from '../../db/db';
export interface IGetAllFeatures {
    featureQuery?: IFeatureToggleQuery;
    archived: boolean;
    requestType: 'client' | 'admin' | 'playground' | 'frontend';
    userId?: number;
}
export interface IGetAdminFeatures {
    featureQuery?: IFeatureToggleQuery;
    archived?: boolean;
    userId?: number;
}
export default class FeatureToggleClientStore implements IFeatureToggleClientStore {
    private db;
    private logger;
    private timer;
    private flagResolver;
    constructor(db: Db, eventBus: EventEmitter, getLogger: LogProvider, flagResolver: IFlagResolver);
    private getAll;
    private rowToStrategy;
    private static rowToTag;
    private isUnseenStrategyRow;
    private addTag;
    private isNewTag;
    private addSegmentToStrategy;
    private addSegmentIdsToStrategy;
    getClient(featureQuery?: IFeatureToggleQuery): Promise<IFeatureToggleClient[]>;
    getFrontendApiClient(featureQuery?: IFeatureToggleQuery): Promise<IFeatureToggleClient[]>;
    getPlayground(featureQuery?: IFeatureToggleQuery): Promise<IFeatureToggleClient[]>;
    getAdmin({ featureQuery, userId, archived, }: IGetAdminFeatures): Promise<IFeatureToggleClient[]>;
}
//# sourceMappingURL=client-feature-toggle-store.d.ts.map