import React from 'react';
import { ImageSourcePropType } from 'react-native';
import type { NaviLatLng, NaviPoi, NaviLocation, NaviCalculateRouteResult, NaviType, NaviShowMode, NaviTrackingMode } from '../types';
import Component from '../map-view/component';
export declare type RideNaviPointProp = NaviLatLng | NaviPoi;
export interface RideNaviViewProp {
    /**
     * 导航起点，不指定则从当前位置开始导航
     */
    from?: RideNaviPointProp;
    /**
     * 导航目的地
     */
    to: RideNaviPointProp;
    /**
     * 导航策略
     */
    strategy?: number;
    /**
     * 导航UI是否可见（默认可见）
     */
    layoutVisible?: boolean;
    /**
     * 指南针图标否在导航界面显示，默认显示。
     */
    compassVisible?: boolean;
    /**
     * 起始终点线颜色
     */
    leaderLineColor?: string;
    /**
     * 导航状态下屏幕是否常亮
     */
    screenAlwaysBright?: boolean;
    /**
     * 是否显示路线全览按钮
     */
    browseButtonVisible?: boolean;
    /**
     * 更多按钮是否显示
     */
    moreButtonVisible?: boolean;
    /**
     * 比例尺是否显示
     */
    scaleVisible?: boolean;
    /**
     * 转向箭头是否显示
     */
    turnArrowVisible?: boolean;
    /**
     * 设置锁车下地图倾角 倾角为0时地图模式是2D模式。
     */
    tilt?: number;
    carMarkerIcon?: ImageSourcePropType;
    startMarkerIcon?: ImageSourcePropType;
    endMarkerIcon?: ImageSourcePropType;
    fourCornersIcon?: ImageSourcePropType;
    /**
     * 设置导航界面跟随模式
     */
    trackingMode?: NaviTrackingMode;
    /**
     * 导航显示模式
     */
    showMode?: NaviShowMode;
    /**
     * 导航组件初始化失败时分发
     */
    onInitNaviFailure?: () => void;
    /**
     * 导航组件初始化成功时分发
     */
    onInitNaviSuccess?: () => void;
    /**
     * 开始导航时分发
     */
    onStartNavi?: (event: {
        type: number;
    }) => void;
    /**
     * 位置信息发生变化时分发
     */
    onLocationChange?: (event: NaviLocation) => void;
    /**
     * 导航语音播报时分发
     */
    onGetNavigationText?: (event: {
        text: string;
    }) => void;
    /**
     * 模拟导航结束时分发
     */
    onEndEmulatorNavi?: () => void;
    /**
     * 路径计算失败时分发
     */
    onCalculateRouteFailure?: (event: NaviCalculateRouteResult) => void;
    /**
     * 路径计算成功时分发
     */
    onCalculateRouteSuccess?: (event: NaviCalculateRouteResult) => void;
    /**
     * 响铃时分发
     */
    onPlayRing?: (event: {
        type: number;
    }) => void;
    /**
     * GPS信号改变时分发
     */
    onGpsStatusChanged?: (event: {
        status: number;
    }) => void;
    /**
     * 导航设置发生改变时分发
     */
    onNaviSettingChanged?: () => void;
    /**
     * 导航取消时分发
     */
    onNaviCancel?: () => void;
    /**
     * 导航完成时分发
     */
    onNaviComplete?: () => void;
    /**
     * 地图加载完成时分发
     */
    onNaviViewLoaded?: () => void;
    /**
     * 点击导航返回按钮时分发
     */
    onNaviBackClick?: () => void;
    /**
     * 点击全览按钮时分发
     */
    onScanViewButtonClick?: () => void;
    /**
     * 导航地图模式改变时分发（锁车、全览、普通）
     */
    onNaviMapModeChanged?: (event: {
        mode: number;
    }) => void;
    /**
     * 地图类型发生改变时分发（白天、黑夜模式）
     */
    onNaviMapViewModeChanged?: (event: {
        type: number;
    }) => void;
    /**
     * 导航界面跟随模式改变后分发
     */
    onNaviMapViewTrackingModeChanged?: (event: {
        mode: number;
    }) => void;
    /**
     * 地图锁定时分发
     */
    onLockMap?: (event: {
        isLock: boolean;
    }) => void;
}
export declare class RideNaviView extends Component<RideNaviViewProp> {
    static propTypes: {
        from: import("prop-types").Requireable<import("prop-types").InferProps<{
            latitude: import("prop-types").Validator<number>;
            longitude: import("prop-types").Validator<number>;
        }> | import("prop-types").InferProps<{
            name: import("prop-types").Validator<string>;
            coordinate: import("prop-types").Validator<import("prop-types").InferProps<{
                latitude: import("prop-types").Validator<number>;
                longitude: import("prop-types").Validator<number>;
            }>>;
            poiId: import("prop-types").Validator<string>;
            direction: import("prop-types").Requireable<number>;
        }>>;
        to: import("prop-types").Validator<import("prop-types").InferProps<{
            latitude: import("prop-types").Validator<number>;
            longitude: import("prop-types").Validator<number>;
        }> | import("prop-types").InferProps<{
            name: import("prop-types").Validator<string>;
            coordinate: import("prop-types").Validator<import("prop-types").InferProps<{
                latitude: import("prop-types").Validator<number>;
                longitude: import("prop-types").Validator<number>;
            }>>;
            poiId: import("prop-types").Validator<string>;
            direction: import("prop-types").Requireable<number>;
        }>>;
        strategy: import("prop-types").Requireable<number>;
        layoutVisible: import("prop-types").Requireable<boolean>;
        compassVisible: import("prop-types").Requireable<boolean>;
        leaderLineColor: import("prop-types").Requireable<string>;
        screenAlwaysBright: import("prop-types").Requireable<boolean>;
        browseButtonVisible: import("prop-types").Requireable<boolean>;
        moreButtonVisible: import("prop-types").Requireable<boolean>;
        scaleVisible: import("prop-types").Requireable<boolean>;
        turnArrowVisible: import("prop-types").Requireable<boolean>;
        trackingMode: import("prop-types").Requireable<number>;
        tilt: import("prop-types").Requireable<number>;
        carMarkerIcon: import("prop-types").Requireable<React.ReactText>;
        startMarkerIcon: import("prop-types").Requireable<React.ReactText>;
        endMarkerIcon: import("prop-types").Requireable<React.ReactText>;
        fourCornersIcon: import("prop-types").Requireable<React.ReactText>;
        showMode: import("prop-types").Requireable<number>;
        hitSlop?: import("prop-types").Validator<import("react-native").Insets | undefined> | undefined;
        onLayout?: import("prop-types").Validator<((event: import("react-native").LayoutChangeEvent) => void) | undefined> | undefined;
        pointerEvents?: import("prop-types").Validator<"box-none" | "none" | "box-only" | "auto" | undefined> | undefined;
        removeClippedSubviews?: import("prop-types").Validator<boolean | undefined> | undefined;
        style?: import("prop-types").Validator<import("react-native").StyleProp<import("react-native").ViewStyle>> | undefined;
        testID?: import("prop-types").Validator<string | undefined> | undefined;
        nativeID?: import("prop-types").Validator<string | undefined> | undefined;
        collapsable?: import("prop-types").Validator<boolean | undefined> | undefined;
        needsOffscreenAlphaCompositing?: import("prop-types").Validator<boolean | undefined> | undefined;
        renderToHardwareTextureAndroid?: import("prop-types").Validator<boolean | undefined> | undefined;
        focusable?: import("prop-types").Validator<boolean | undefined> | undefined;
        shouldRasterizeIOS?: import("prop-types").Validator<boolean | undefined> | undefined;
        isTVSelectable?: import("prop-types").Validator<boolean | undefined> | undefined;
        hasTVPreferredFocus?: import("prop-types").Validator<boolean | undefined> | undefined;
        tvParallaxProperties?: import("prop-types").Validator<import("react-native").TVParallaxProperties | undefined> | undefined;
        tvParallaxShiftDistanceX?: import("prop-types").Validator<number | undefined> | undefined;
        tvParallaxShiftDistanceY?: import("prop-types").Validator<number | undefined> | undefined;
        tvParallaxTiltAngle?: import("prop-types").Validator<number | undefined> | undefined;
        tvParallaxMagnification?: import("prop-types").Validator<number | undefined> | undefined;
        onStartShouldSetResponder?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
        onMoveShouldSetResponder?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
        onResponderEnd?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onResponderGrant?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onResponderReject?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onResponderMove?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onResponderRelease?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onResponderStart?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onResponderTerminationRequest?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
        onResponderTerminate?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onStartShouldSetResponderCapture?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
        onMoveShouldSetResponderCapture?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
        onTouchStart?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onTouchMove?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onTouchEnd?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onTouchCancel?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        onTouchEndCapture?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
        accessible?: import("prop-types").Validator<boolean | undefined> | undefined;
        accessibilityActions?: import("prop-types").Validator<readonly Readonly<{
            name: import("react-native").AccessibilityActionName;
            label?: string | undefined;
        }>[] | undefined> | undefined;
        accessibilityLabel?: import("prop-types").Validator<string | undefined> | undefined;
        accessibilityRole?: import("prop-types").Validator<"image" | "none" | "button" | "link" | "search" | "keyboardkey" | "text" | "adjustable" | "imagebutton" | "header" | "summary" | "alert" | "checkbox" | "combobox" | "menu" | "menubar" | "menuitem" | "progressbar" | "radio" | "radiogroup" | "scrollbar" | "spinbutton" | "switch" | "tab" | "tablist" | "timer" | "toolbar" | undefined> | undefined;
        accessibilityState?: import("prop-types").Validator<import("react-native").AccessibilityState | undefined> | undefined;
        accessibilityHint?: import("prop-types").Validator<string | undefined> | undefined;
        accessibilityValue?: import("prop-types").Validator<import("react-native").AccessibilityValue | undefined> | undefined;
        onAccessibilityAction?: import("prop-types").Validator<((event: import("react-native").AccessibilityActionEvent) => void) | undefined> | undefined;
        accessibilityComponentType?: import("prop-types").Validator<"none" | "button" | "radiobutton_checked" | "radiobutton_unchecked" | undefined> | undefined;
        accessibilityLiveRegion?: import("prop-types").Validator<"none" | "polite" | "assertive" | undefined> | undefined;
        importantForAccessibility?: import("prop-types").Validator<"auto" | "yes" | "no" | "no-hide-descendants" | undefined> | undefined;
        accessibilityElementsHidden?: import("prop-types").Validator<boolean | undefined> | undefined;
        accessibilityTraits?: import("prop-types").Validator<"image" | "none" | "button" | "link" | "search" | "text" | "adjustable" | "header" | "summary" | "selected" | "plays" | "key" | "disabled" | "frequentUpdates" | "startsMedia" | "allowsDirectInteraction" | "pageTurn" | import("react-native").AccessibilityTrait[] | undefined> | undefined;
        accessibilityViewIsModal?: import("prop-types").Validator<boolean | undefined> | undefined;
        onAccessibilityEscape?: import("prop-types").Validator<(() => void) | undefined> | undefined;
        onAccessibilityTap?: import("prop-types").Validator<(() => void) | undefined> | undefined;
        onMagicTap?: import("prop-types").Validator<(() => void) | undefined> | undefined;
        accessibilityIgnoresInvertColors?: import("prop-types").Validator<boolean | undefined> | undefined;
    };
    static defaultProps: {
        strategy: number;
    };
    startNavi(type: NaviType, speed?: number): void;
    stopNavi(): void;
    pauseNavi(): void;
    resumeNavi(): void;
    startGPS(time?: number, dis?: number): void;
    stopGPS(): void;
    nativeComponent: string;
    render(): JSX.Element;
}
