import { JobData, ShipmentData } from "../../../../models"; import { RouteResultEditorBase } from "../../route-result-editor-base"; type ItemWithRequirements = { requirements?: string[]; }; type AgentWithTimeWindows = { time_windows?: [number, number][]; }; /** * Shared helper for managing requirements on jobs and shipments */ export declare class RequirementHelper { static readonly UNASSIGNED_REQ = "unassigned"; static readonly ASSIGN_AGENT_PREFIX = "assign-agent-"; static readonly NON_ASSIGNABLE_REQUIREMENT = "NON_ASSIGNABLE"; static createAssignAgentRequirement(agentIndex: number): string; static ensureRequirementsArray(item: ItemWithRequirements): void; static addRequirement(requirements: string[], req: string): void; static removeRequirement(requirements: string[], req: string): void; static markAsUnassigned(item: ItemWithRequirements): void; static assignToAgent(item: ItemWithRequirements, agentIndex: number): void; static markItemsAsUnassigned(items: T[], indexes: number[]): void; static assignItemsToAgent(items: T[], indexes: number[], agentIndex: number): void; static markExistingUnassignedJobs(context: RouteResultEditorBase, jobs: JobData[]): void; static markExistingUnassignedShipments(context: RouteResultEditorBase, shipments: ShipmentData[]): void; static markRemainingJobsWithAgentRequirement(context: RouteResultEditorBase, jobs: JobData[], excludeIndexes: number[]): void; static markRemainingShipmentsWithAgentRequirement(context: RouteResultEditorBase, shipments: ShipmentData[], excludeIndexes: number[]): void; static extendAgentTimeWindows(agent: AgentWithTimeWindows): void; static restrictAssignmentsToTargetSet(items: T[], targetIndexes: Set): void; } export {};