import { CSSProperties } from 'react';
import { ArrowStyle } from './basics/Polyline';
import { Position } from '../../utils/mapTypes';
import { EventListenerMap } from '../../utils/eventHandling';
export declare const MISSING_POSITIONS_EXCEPTION_MSG = "Route requires a minimum of 1 positions";
export declare const TO_LESS_LINE_WIDTH_EXCEPTION_MSG = "If isBorderIncludedInWidth is set to true than width has to be greater than twice of borderWidth";
export declare const DEFAULT_LINE_STROKE_COLOR = "rgba(48, 194, 255, 1)";
export declare const DEFAULT_LINE_STROKE_COLOR_REDUCED = "rgba(48, 194, 255, 0.5)";
export declare const DEFAULT_LINE_STROKE_COLOR_ALTERNATIVE = "rgb(200, 243, 247)";
export declare const DEFAULT_BORDER_STROKE_COLOR = "rgba(22, 100, 141, 1)";
export declare const DEFAULT_BORDER_STROKE_COLOR_REDUCED = "rgba(255, 255, 255, 0)";
export declare const ROUTE_COLOR_DANGER = "#e22837";
export declare const ROUTE_COLOR_WARNING = "#ff8e3c";
export declare const ROUTE_COLOR_SUCCESS = "#5cb85c";
export declare const ROUTE_COLOR_WHITE = "rgba(255, 255, 255, 1)";
export declare const ARROW_COLOR_WARNING = "rgba(167, 83, 25, 1)";
export type RouteStyle = {
    width?: number;
    color?: string;
    borderWidth?: number;
    borderColor?: string;
    isBorderIncludedInWidth?: boolean;
    lineDash?: number[];
};
export type RouteProps = {
    /**
     * Defines the arrow appearance when arrows are rendered on the route.
     *
     * @default {}
     */
    arrowStyle?: ArrowStyle;
    /**
     * Controls whether directional arrows are rendered on the route line.
     *
     * @default true
     */
    hasArrows?: boolean;
    /**
     * Ordered geographic positions that define the route geometry.
     */
    positions: Position[];
    /**
     * Overrides the default route styling for line and border.
     *
     * @default { width: 5, color: 'rgba(48, 194, 255, 1)', borderWidth: 2, borderColor: 'rgba(22, 100, 141, 1)', isBorderIncludedInWidth: false }
     */
    style?: RouteStyle;
    /**
     * Style overrides applied while the route is hovered via its hit area.
     */
    hoverStyle?: RouteStyle;
    /**
     * Shows the internal hit area polyline in red for debugging.
     *
     * @default false
     */
    showHitArea?: boolean;
    /**
     * Event handlers attached to the interactive route hit area.
     */
    eventListenerMap?: EventListenerMap;
    /**
     * Renders the route in its reduced visual style.
     *
     * @default false
     */
    isReduced?: boolean;
    /**
     * Applies the alternative route base styling.
     *
     * @default false
     */
    isRouteAlternative?: boolean;
    /**
     * Icon rendered at the first route position.
     */
    startIcon?: JSX.Element;
    /**
     * Icon rendered at the middle route position.
     */
    middleIcon?: JSX.Element;
    /**
     * Icon rendered at the last route position.
     */
    endIcon?: JSX.Element;
    /**
     * Additional markers rendered alongside the route.
     *
     * @default []
     */
    markers?: JSX.Element[];
    /**
     * Custom payload forwarded to the rendered route polylines and their events.
     */
    customData?: object;
    /**
     * Cursor shown while hovering the interactive route hit area.
     * If omitted, clickable routes automatically use `pointer`.
     */
    cursor?: CSSProperties['cursor'];
};
declare const Route: (props: RouteProps) => import("react/jsx-runtime").JSX.Element;
export default Route;
