import type { IUnleashConfig } from '../types/option.js';
import type { IUnleashStores } from '../types/stores.js';
import type { IMinimalStrategy, IStrategy } from '../types/stores/strategy-store.js';
import type EventService from '../features/events/event-service.js';
import { type IAuditUser } from '../types/index.js';
declare class StrategyService {
    private strategyStore;
    private eventService;
    private customStrategySettings;
    constructor({ strategyStore }: Pick<IUnleashStores, 'strategyStore'>, config: Pick<IUnleashConfig, 'getLogger' | 'customStrategySettings'>, eventService: EventService);
    getStrategies(): Promise<IStrategy[]>;
    getStrategy(name: string): Promise<IStrategy | undefined>;
    removeStrategy(strategyName: string, auditUser: IAuditUser): Promise<void>;
    deprecateStrategy(strategyName: string, auditUser: IAuditUser): Promise<void>;
    reactivateStrategy(strategyName: string, auditUser: IAuditUser): Promise<void>;
    createStrategy(value: IMinimalStrategy, auditUser: IAuditUser): Promise<IStrategy | undefined>;
    updateStrategy(input: IMinimalStrategy, auditUser: IAuditUser): Promise<void>;
    private _validateStrategyName;
    _validateEditable(strategy: IStrategy | undefined): void;
    private assertCreationAllowed;
    private assertEditingAllowed;
}
export default StrategyService;
//# sourceMappingURL=strategy-service.d.ts.map