/// <reference types="node" />
import { type IAuditUser, type IEnvironmentStore, type IEventStore, type IFeatureEnvironmentStore, type IUnleashConfig } from '../../types';
import type { FeatureLifecycleView, IFeatureLifecycleStore } from './feature-lifecycle-store-type';
import EventEmitter from 'events';
import type EventService from '../events/event-service';
export declare const STAGE_ENTERED = "STAGE_ENTERED";
export declare class FeatureLifecycleService extends EventEmitter {
    private eventStore;
    private featureLifecycleStore;
    private environmentStore;
    private featureEnvironmentStore;
    private flagResolver;
    private eventBus;
    private eventService;
    private logger;
    constructor({ eventStore, featureLifecycleStore, environmentStore, featureEnvironmentStore, }: {
        eventStore: IEventStore;
        environmentStore: IEnvironmentStore;
        featureLifecycleStore: IFeatureLifecycleStore;
        featureEnvironmentStore: IFeatureEnvironmentStore;
    }, { eventService, }: {
        eventService: EventService;
    }, { flagResolver, eventBus, getLogger, }: Pick<IUnleashConfig, 'flagResolver' | 'eventBus' | 'getLogger'>);
    private checkEnabled;
    listen(): void;
    getFeatureLifecycle(feature: string): Promise<FeatureLifecycleView>;
    private featureInitialized;
    private stageReceivedMetrics;
    private featuresReceivedMetrics;
    featureCompleted(feature: string, auditUser: IAuditUser): Promise<void>;
    featureUnCompleted(feature: string, auditUser: IAuditUser): Promise<void>;
    private featureArchived;
    private featureRevived;
}
//# sourceMappingURL=feature-lifecycle-service.d.ts.map