@geoapify/route-planner-sdk
Version:
TypeScript SDK for the Geoapify Route Planner API. Supports route optimization, delivery planning, and timeline visualization in browser and Node.js
32 lines (31 loc) • 1.89 kB
TypeScript
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<T extends ItemWithRequirements>(items: T[], indexes: number[]): void;
static assignItemsToAgent<T extends ItemWithRequirements>(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<T extends ItemWithRequirements>(items: T[], targetIndexes: Set<number>): void;
}
export {};