import { VertexFactory } from "./util/vertex.js"; import { EdgeWrapper, Plain, Wrapped } from "./util/edges.js"; import { Day } from "./properties/days.js"; import { Interval } from "./properties/intervals.js"; import { Tag } from "./properties/tags.js"; import { MaximumScheduleSpan } from "./properties/maximum-schedule-span.js"; import { RootIntervalVertex } from "./root-intervals.js"; import { Domain } from "./properties/domain.js"; import { PersonVertex } from "./persons.js"; import { ExceptionVertex } from "./exceptions.js"; import { LockedTimeVertex } from "./locked-times.js"; //#region src/core/interfaces/vertices/groups.d.ts type DerivedParentGroupOpts = { /** * If the group is explicitly defined as a parent group. */ explicit?: boolean; /** * If the group has a member that in turn have a group (`person.group`) specified, that group (who's `group.species == 'class'`) is considered an implicit parent group. * * A group can be both an explicit and implicit parent group at the same time, if it's explicitly defined as a parent group and also have a member that in turn have that group specified. */ implicit?: boolean; }; type GroupVertex = VertexFactory<'groups', Domain & { tags?: Tag[]; minBreakLength?: number; /** @deprecated replaced by maximumScheduleSpan */ maxNumWorkingHours?: number | false; /** @deprecated replaced by maximumScheduleSpan */ maxNumDailyWorkingHours?: number | number[] | false; maximumScheduleSpan?: MaximumScheduleSpan; forbidOverlappingEvents?: boolean; disableDayLengthPunishment?: boolean; weight?: number; species?: 'class'; /** * @note an empty array is the same as undefined */ intervals?: Interval[]; days?: Day[]; parentGroups?: null | EdgeWrapper<'array', Plain.Edge>; subGroups?: null | EdgeWrapper<'array', Plain.Edge>; lockedTimes?: null | EdgeWrapper<'array', Plain.Edge>; lunch?: null | EdgeWrapper<'array', Plain.Edge>; exceptions?: null | EdgeWrapper<'array', Plain.Edge>; members?: null | EdgeWrapper<'array', Plain.Edge>; rootInterval?: null | EdgeWrapper<'single', Plain.Edge>; /** * Source only? */ derivedParentGroups?: null | EdgeWrapper<'array', Wrapped.Edge<'group', GroupVertex, DerivedParentGroupOpts>>; }>; //#endregion export { GroupVertex }; //# sourceMappingURL=groups.d.ts.map