import { RouteResultEditorBase } from "../../../route-result-editor-base";
export type InsertionTravelTimes = {
    locationFrom: [number, number];
    locationTo: [number, number];
    time: number;
}[];
/**
 * Calculates optimal insertion points for new locations in existing routes.
 * Uses existing leg data only.
 */
export declare class InsertionCostCalculator {
    static findOptimalInsertionPoint(context: RouteResultEditorBase, agentIndex: number, route: [number, number][], newLocation: [number, number], options?: {
        canInsertBeforeFirst?: boolean;
        canInsertAfterLast?: boolean;
        travelTimes?: InsertionTravelTimes;
    }): Promise<number>;
    protected static getConsecutiveTimes(context: RouteResultEditorBase, agentIndex: number, routeLocations: [number, number][], travelTimeMap: Map<string, number>): Promise<number[]>;
    private static findSubRouteStartIndex;
    private static sameLocation;
    private static calculateInsertionCost;
    private static buildTravelTimeMap;
    private static getTravelTime;
    private static getTravelTimeKey;
    private static getInsertionPositions;
}
