unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
45 lines • 3.04 kB
TypeScript
import type { IUnleashConfig } from '../../types/option.js';
import { type IAuditUser, type IUnleashStores } from '../../types/index.js';
import type { ISegment } from '../../types/model.js';
import type User from '../../types/user.js';
import type { ISegmentService, StrategiesUsingSegment } from './segment-service-interface.js';
import type { IChangeRequestAccessReadModel } from '../change-request-access-service/change-request-access-read-model.js';
import type { IPrivateProjectChecker } from '../private-project/privateProjectCheckerType.js';
import type EventService from '../events/event-service.js';
import type { IChangeRequestSegmentUsageReadModel } from '../change-request-segment-usage-service/change-request-segment-usage-read-model.js';
import type { UpsertSegmentSchema } from '../../openapi/index.js';
import type { ResourceLimitsService } from '../resource-limits/resource-limits-service.js';
export declare class SegmentService implements ISegmentService {
private segmentStore;
private featureStrategiesStore;
private changeRequestAccessReadModel;
private changeRequestSegmentUsageReadModel;
private config;
private flagResolver;
private eventService;
private privateProjectChecker;
private resourceLimitsService;
constructor({ segmentStore, featureStrategiesStore, }: Pick<IUnleashStores, 'segmentStore' | 'featureStrategiesStore'>, changeRequestAccessReadModel: IChangeRequestAccessReadModel, changeRequestSegmentUsageReadModel: IChangeRequestSegmentUsageReadModel, config: IUnleashConfig, eventService: EventService, privateProjectChecker: IPrivateProjectChecker, resourceLimitsService: ResourceLimitsService);
get(id: number): Promise<ISegment>;
getAll(): Promise<ISegment[]>;
getByStrategy(strategyId: string): Promise<ISegment[]>;
getVisibleStrategies(id: number, userId: number): Promise<StrategiesUsingSegment>;
getAllStrategies(id: number): Promise<StrategiesUsingSegment>;
isInUse(id: number): Promise<boolean>;
validateSegmentLimit(): Promise<void>;
create(data: unknown, auditUser: IAuditUser): Promise<ISegment>;
update(id: number, data: UpsertSegmentSchema, user: User, auditUser: IAuditUser): Promise<void>;
unprotectedUpdate(id: number, data: UpsertSegmentSchema, auditUser: IAuditUser): Promise<void>;
delete(id: number, user: User, auditUser: IAuditUser): Promise<void>;
unprotectedDelete(id: number, auditUser: IAuditUser): Promise<void>;
cloneStrategySegments(sourceStrategyId: string, targetStrategyId: string): Promise<void>;
addToStrategy(id: number, strategyId: string): Promise<void>;
updateStrategySegments(strategyId: string, segmentIds: number[]): Promise<void>;
removeFromStrategy(id: number, strategyId: string): Promise<void>;
validateName(name: string): Promise<void>;
private validateStrategySegmentLimit;
private validateSegmentValuesLimit;
private validateSegmentProject;
private stopWhenChangeRequestsEnabled;
}
//# sourceMappingURL=segment-service.d.ts.map