import EventEmitter from 'events';
import type { RepositoryInterface } from 'unleash-client/lib/repository/index.js';
import type { Segment } from 'unleash-client/lib/strategy/strategy.js';
import type { EnhancedFeatureInterface, FeatureInterface } from 'unleash-client/lib/feature.js';
import type { IUnleashConfig, IApiUser, IUnleashStores } from '../../types/index.js';
import type { IUnleashServices } from '../../services/index.js';
type Config = Pick<IUnleashConfig, 'getLogger' | 'frontendApi' | 'eventBus'>;
type Stores = Pick<IUnleashStores, 'segmentReadModel'>;
type Services = Pick<IUnleashServices, 'featureToggleService' | 'configurationRevisionService'>;
export declare class ProxyRepository extends EventEmitter implements RepositoryInterface {
    private readonly config;
    private readonly logger;
    private readonly stores;
    private readonly services;
    private readonly configurationRevisionService;
    private readonly token;
    private features;
    private segments;
    private interval;
    private timer;
    private running;
    private methodTimer;
    constructor(config: Config, stores: Stores, services: Services, token: IApiUser);
    getTogglesWithSegmentData(): EnhancedFeatureInterface[];
    getSegment(id: number): Segment | undefined;
    getToggle(name: string): FeatureInterface;
    getToggles(): FeatureInterface[];
    start(): Promise<void>;
    stop(): void;
    private dataPolling;
    private loadDataForToken;
    private randomizeDelay;
    private onUpdateRevisionEvent;
    private featuresForToken;
    private segmentsForToken;
    private environmentNameForToken;
}
export {};
//# sourceMappingURL=proxy-repository.d.ts.map