Skip to main content
const builtInCpsatRuleRegistry: object;
The built-in CP-SAT rule registry.

Type Declaration

NameTypeDefault value
| <a id="property-assign-together"></a> assign-together | [RuleDescriptor](./RuleDescriptor)\<"assign-together", { groupMemberIds: \[string, string, ...string[]\]; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; }\> | assignTogetherRuleDescriptor |
| <a id="property-assignment-priority"></a> assignment-priority | [RuleDescriptor](./RuleDescriptor)\<"assignment-priority", { preference: "prefer" | "avoid"; priority?: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY" | undefined; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | assignmentPriorityRuleDescriptor |
| <a id="property-day-cost-multiplier"></a> day-cost-multiplier | [RuleDescriptor](./RuleDescriptor)\<"day-cost-multiplier", { factor: number; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | dayCostMultiplierRuleDescriptor |
| <a id="property-day-cost-surcharge"></a> day-cost-surcharge | [RuleDescriptor](./RuleDescriptor)\<"day-cost-surcharge", { amountPerHour: number; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | dayCostSurchargeRuleDescriptor |
| <a id="property-location-preference"></a> location-preference | [RuleDescriptor](./RuleDescriptor)\<"location-preference", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | locationPreferenceRuleDescriptor |
| <a id="property-max-concurrent-assignments"></a> max-concurrent-assignments | [RuleDescriptor](./RuleDescriptor)\<"max-concurrent-assignments", { assignments: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; startTime?: { hours: number; minutes: number; } | undefined; endTime?: { hours: number; minutes: number; } | undefined; } & EntityScopeType\<...\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | maxConcurrentAssignmentsRuleDescriptor |
| <a id="property-max-consecutive-days"></a> max-consecutive-days | [RuleDescriptor](./RuleDescriptor)\<"max-consecutive-days", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | maxConsecutiveDaysRuleDescriptor |
| <a id="property-max-days-of-week-per-period"></a> max-days-of-week-per-period | [RuleDescriptor](./RuleDescriptor)\<"max-days-of-week-per-period", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | maxDaysOfWeekPerPeriodRuleDescriptor |
| <a id="property-max-days-week"></a> max-days-week | [RuleDescriptor](./RuleDescriptor)\<"max-days-week", { days: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType\<...\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | maxDaysWeekRuleDescriptor |
| <a id="property-max-hours-day"></a> max-hours-day | [RuleDescriptor](./RuleDescriptor)\<"max-hours-day", { hours: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | maxHoursDayRuleDescriptor |
| <a id="property-max-hours-week"></a> max-hours-week | [RuleDescriptor](./RuleDescriptor)\<"max-hours-week", { hours: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType\<...\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | maxHoursWeekRuleDescriptor |
| <a id="property-max-shifts-day"></a> max-shifts-day | [RuleDescriptor](./RuleDescriptor)\<"max-shifts-day", { shifts: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | maxShiftsDayRuleDescriptor |
| <a id="property-min-consecutive-days"></a> min-consecutive-days | [RuleDescriptor](./RuleDescriptor)\<"min-consecutive-days", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | minConsecutiveDaysRuleDescriptor |
| <a id="property-min-days-of-week-per-period"></a> min-days-of-week-per-period | [RuleDescriptor](./RuleDescriptor)\<"min-days-of-week-per-period", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | minDaysOfWeekPerPeriodRuleDescriptor |
| <a id="property-min-days-week"></a> min-days-week | [RuleDescriptor](./RuleDescriptor)\<"min-days-week", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | minDaysWeekRuleDescriptor |
| <a id="property-min-hours-day"></a> min-hours-day | [RuleDescriptor](./RuleDescriptor)\<"min-hours-day", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | minHoursDayRuleDescriptor |
| <a id="property-min-hours-week"></a> min-hours-week | [RuleDescriptor](./RuleDescriptor)\<"min-hours-week", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | minHoursWeekRuleDescriptor |
| <a id="property-min-rest-between-shifts"></a> min-rest-between-shifts | [RuleDescriptor](./RuleDescriptor)\<"min-rest-between-shifts", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | minRestBetweenShiftsRuleDescriptor |
| <a id="property-minimize-cost"></a> minimize-cost | [RuleDescriptor](./RuleDescriptor)\<"minimize-cost", EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | minimizeCostRuleDescriptor |
| <a id="property-must-assign"></a> must-assign | [RuleDescriptor](./RuleDescriptor)\<"must-assign", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | mustAssignRuleDescriptor |
| <a id="property-overtime-daily-multiplier"></a> overtime-daily-multiplier | [RuleDescriptor](./RuleDescriptor)\<"overtime-daily-multiplier", { after: number; factor: number; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | overtimeDailyMultiplierRuleDescriptor |
| <a id="property-overtime-daily-surcharge"></a> overtime-daily-surcharge | [RuleDescriptor](./RuleDescriptor)\<"overtime-daily-surcharge", { after: number; amount: number; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | overtimeDailySurchargeRuleDescriptor |
| <a id="property-overtime-tiered-multiplier"></a> overtime-tiered-multiplier | [RuleDescriptor](./RuleDescriptor)\<"overtime-tiered-multiplier", { tiers: { after: number; factor: number; }\[\]; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | overtimeTieredMultiplierRuleDescriptor |
| <a id="property-overtime-weekly-multiplier"></a> overtime-weekly-multiplier | [RuleDescriptor](./RuleDescriptor)\<"overtime-weekly-multiplier", { after: number; factor: number; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | overtimeWeeklyMultiplierRuleDescriptor |
| <a id="property-overtime-weekly-surcharge"></a> overtime-weekly-surcharge | [RuleDescriptor](./RuleDescriptor)\<"overtime-weekly-surcharge", { after: number; amount: number; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | overtimeWeeklySurchargeRuleDescriptor |
| <a id="property-role-preference"></a> role-preference | [RuleDescriptor](./RuleDescriptor)\<"role-preference", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | rolePreferenceRuleDescriptor |
| <a id="property-target-days-week"></a> target-days-week | [RuleDescriptor](./RuleDescriptor)\<"target-days-week", object & EntityScopeType\<"members" | "roles" | "skills"\>\> | targetDaysWeekRuleDescriptor |
| <a id="property-target-peak-concurrent-assignments"></a> target-peak-concurrent-assignments | [RuleDescriptor](./RuleDescriptor)\<"target-peak-concurrent-assignments", { assignments: number; priority: "LOW" | "MEDIUM" | "HIGH"; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | targetPeakConcurrentAssignmentsRuleDescriptor |
| <a id="property-time-cost-surcharge"></a> time-cost-surcharge | [RuleDescriptor](./RuleDescriptor)\<"time-cost-surcharge", { amountPerHour: number; window: { from: { hours: number; minutes: number; }; until: { hours: number; minutes: number; }; }; } & EntityScopeType\<"members" | "roles" | "skills"\> & OptionalTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | timeCostSurchargeRuleDescriptor |
| <a id="property-time-off"></a> time-off | [RuleDescriptor](./RuleDescriptor)\<"time-off", { priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; startTime?: { hours: number; minutes: number; } | undefined; endTime?: { hours: number; minutes: number; } | undefined; } & EntityScopeType\<"members" | "roles" | "skills"\> & RequiredTimeScopeType\<"dateRange" | "dayOfWeek" | "specificDates" | "recurring"\>\> | timeOffRuleDescriptor |
Pass this to defineRuleFor when you want registry-bound authoring for built-in rules, or spread it into a larger registry when building a fully explicit descriptor set.