import type { IAuditUser, IUnleashConfig, MilestoneStrategyConfigUpdate } from '../../types/index.js';
import type { ReleasePlanMilestoneStrategy } from './release-plan-milestone-strategy.js';
import type { IUser } from '../../types/user.js';
import { type IChangeRequestAccessReadModel, type IUnleashServices, type IUnleashStores } from '../../server-impl.js';
type MilestoneStrategyContext = {
    projectId: string;
    environment: string;
    featureName: string;
};
export declare class ReleasePlanMilestoneStrategyService {
    private readonly logger;
    private readonly milestoneStrategyStore;
    private readonly featureToggleService;
    private changeRequestAccessReadModel;
    constructor({ releasePlanMilestoneStrategyStore: milestoneStrategyStore, }: Pick<IUnleashStores, 'releasePlanMilestoneStrategyStore'>, { featureToggleService, }: Pick<IUnleashServices, 'featureToggleService'>, changeRequestAccessReadModel: IChangeRequestAccessReadModel, { getLogger }: Pick<IUnleashConfig, 'getLogger'>);
    updateStrategy(id: string, strategy: Partial<MilestoneStrategyConfigUpdate>, context: MilestoneStrategyContext, auditUser: IAuditUser, user?: IUser): Promise<ReleasePlanMilestoneStrategy>;
    private stopWhenChangeRequestsEnabled;
    unprotectedUpdateStrategy(id: string, strategy: Partial<MilestoneStrategyConfigUpdate>, context: MilestoneStrategyContext, auditUser: IAuditUser, user?: IUser): Promise<ReleasePlanMilestoneStrategy>;
}
export {};
//# sourceMappingURL=release-plan-milestone-strategy-service.d.ts.map