import { RoutePlannerResult } from "../../models/entities/route-planner-result";
import { AgentData, AgentSolution, JobData, ShipmentData } from "../../models";
import { OptimizeAgentInput } from "./optimize-agent-input";
export declare class RouteResultEditorBase {
    protected readonly result: RoutePlannerResult;
    constructor(result: RoutePlannerResult);
    protected optimizeRoute(optimizeAgentInput: OptimizeAgentInput): Promise<RoutePlannerResult>;
    private generateOptimizedRoute;
    protected removeAgent(agentIndex: number): void;
    private removeAgentWithIndex;
    protected updateAgent(newResult: RoutePlannerResult, originalAgentIndex: number): void;
    private updateResultWithUpdatedAgent;
    protected generateOptimizeAgentInput(agentIndex: number, existingAgent?: AgentSolution): OptimizeAgentInput;
    protected checkIfArrayIsUnique(myArray: any[]): boolean;
    protected getAgentByIndex(agentIndex: number): AgentData;
    protected getJobByIndex(jobIndex: number): JobData;
    protected getShipmentByIndex(shipmentIndex: number): ShipmentData;
    protected validateAgent(agentIndex: number): void;
    private updateUnassignedItems;
    private updateUnassignedAgents;
    private updateUnassignedJobs;
    private updateUnassignedShipments;
    private getUnassignedJobs;
    private getUnassignedShipments;
    private addUnassignedAgentIfNeeded;
    private addIssuesPropertiesIfMissing;
    private fixAgentIndex;
    private fixShipmentJobIndexes;
    private fixWaypointIndexes;
    protected generateEmptyUnassignedShipmentsIfNeeded(): void;
    protected generateEmptyUnassignedJobsIfNeeded(): void;
    private fixUnassignedItems;
}
