import { NavigationInstruction } from './NavigationInstruction';
import { NavigationRequest } from './NavigationRequest';
import { NavigationRequestMultiDestination } from './NavigationRequestMultiDestination';

/**
 * A Navigation is computed from a route.
 * It makes the route readable and displayable.
 * It contains its original request and all the instructions to navigate along the route.
 */
export interface Navigation {
    /**
     * The request used to compute this Navigation.
     */
    readonly request: NavigationRequest | NavigationRequestMultiDestination;
    /**
     * All instructions for current Navigation ordered with element 0 as the start to the last element as the end.
     * @see {@link NavigationInstruction}
     */
    readonly instructions: NavigationInstruction[];
}
