import { RouteResultEditorBase } from "../../../route-result-editor-base";
import { PreserveOrderBaseHelper } from "./preserve-order-base-helper";
import { AddAssignOptions } from "../../../../../models";
export interface ShipmentInsertPositions {
    pickup: number;
    delivery: number;
    createPickupWaypoint?: boolean;
    createDeliveryWaypoint?: boolean;
}
export declare class PreserveOrderShipmentHelper extends PreserveOrderBaseHelper {
    static determineShipmentInsertPositions(context: RouteResultEditorBase, agentIndex: number, shipmentIndex: number, options: AddAssignOptions): Promise<ShipmentInsertPositions>;
    static getAppendToEndPositions(context: RouteResultEditorBase, agentIndex: number): Promise<{
        pickup: number;
        delivery: number;
    }>;
    static findOptimalShipmentPositions(context: RouteResultEditorBase, agentIndex: number, shipmentIndex: number): Promise<ShipmentInsertPositions>;
    static findOptimalShipmentPositionsAfter(context: RouteResultEditorBase, agentIndex: number, shipmentIndex: number, minPosition: number): Promise<ShipmentInsertPositions>;
    private static findExistingWaypointByOriginalLocation;
    private static sameLocation;
    private static calculateTravelTimes;
}
