import type { PropType, VNode } from 'vue';
import type { VcColor, VcComponentInternalInstance, VcComponentPublicInstance, VcPickEvent, VcReadyObject, VcTyphoonDatasource, VcTyphoonPoint, VcTyphoonRoute } from 'vue-cesium/es/utils/types';
import { VcLabelProps, VcPointProps } from 'vue-cesium/es/components/primitive-collections';
import { VcPrimitiveProps } from 'vue-cesium/es/components/primitives';
import { VcGeometryPolylineProps } from 'vue-cesium/es/components/geometries';
export declare const typhoonOverlayProps: {
    typhoonRoutes: {
        type: PropType<VcTyphoonRoute[]>;
    };
    clampToGround: {
        type: BooleanConstructor;
        default: boolean;
    };
    radius7Color: {
        type: StringConstructor;
        default: string;
    };
    radius10Color: {
        type: StringConstructor;
        default: string;
    };
    radius12Color: {
        type: StringConstructor;
        default: string;
    };
    pointProps: {
        type: PropType<VcPointProps | ((e: VcTyphoonPoint) => VcPointProps)>;
        default: () => {
            color: string;
            pixelSize: number;
            outlineColor: string;
            outlineWidth: number;
            disableDepthTestDistance: number;
        };
    };
    linePrimitiveProps: {
        type: PropType<VcPrimitiveProps | ((e: VcTyphoonDatasource) => VcPrimitiveProps)>;
        default: () => {
            enableMouseEvent: boolean;
            asynchronous: boolean;
            allowPicking: boolean;
        };
    };
    lineGeometryProps: {
        type: PropType<VcGeometryPolylineProps | ((e: VcTyphoonDatasource) => VcGeometryPolylineProps)>;
        default: () => {
            width: number;
            show: boolean;
        };
    };
    labelProps: {
        type: PropType<VcLabelProps | ((e: VcTyphoonDatasource) => VcLabelProps)>;
        default: () => {
            pixelOffset: number[];
            showBackground: boolean;
            backgroundColor: string;
            enableMouseEvent: boolean;
        };
    };
    circleOverlayPosition: {
        type: PropType<string | ((e: VcTyphoonPoint) => string)>;
        default: string;
    };
    setsArray: {
        type: PropType<string[]>;
        default: () => string[];
    };
};
declare const emits: {
    mouseover: (e: VcPickEvent) => boolean;
    mouseout: (e: VcPickEvent) => boolean;
    click: (e: VcPickEvent) => boolean;
    clickout: (e: VcPickEvent) => boolean;
    forecastRouteAdded: (e: {
        livePoint: VcTyphoonPoint;
        datasource: VcTyphoonDatasource;
        addedByClick: boolean;
    }) => boolean;
    beforeLoad: (instance: VcComponentInternalInstance) => boolean;
    ready: (readyObj: VcReadyObject) => boolean;
    unready: (e: any) => boolean;
    destroyed: (instance: VcComponentInternalInstance) => boolean;
};
declare const _default: import("vue").DefineComponent<{
    typhoonRoutes: {
        type: PropType<VcTyphoonRoute[]>;
    };
    clampToGround: {
        type: BooleanConstructor;
        default: boolean;
    };
    radius7Color: {
        type: StringConstructor;
        default: string;
    };
    radius10Color: {
        type: StringConstructor;
        default: string;
    };
    radius12Color: {
        type: StringConstructor;
        default: string;
    };
    pointProps: {
        type: PropType<VcPointProps | ((e: VcTyphoonPoint) => VcPointProps)>;
        default: () => {
            color: string;
            pixelSize: number;
            outlineColor: string;
            outlineWidth: number;
            disableDepthTestDistance: number;
        };
    };
    linePrimitiveProps: {
        type: PropType<VcPrimitiveProps | ((e: VcTyphoonDatasource) => VcPrimitiveProps)>;
        default: () => {
            enableMouseEvent: boolean;
            asynchronous: boolean;
            allowPicking: boolean;
        };
    };
    lineGeometryProps: {
        type: PropType<VcGeometryPolylineProps | ((e: VcTyphoonDatasource) => VcGeometryPolylineProps)>;
        default: () => {
            width: number;
            show: boolean;
        };
    };
    labelProps: {
        type: PropType<VcLabelProps | ((e: VcTyphoonDatasource) => VcLabelProps)>;
        default: () => {
            pixelOffset: number[];
            showBackground: boolean;
            backgroundColor: string;
            enableMouseEvent: boolean;
        };
    };
    circleOverlayPosition: {
        type: PropType<string | ((e: VcTyphoonPoint) => string)>;
        default: string;
    };
    setsArray: {
        type: PropType<string[]>;
        default: () => string[];
    };
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    mouseover: (e: VcPickEvent) => boolean;
    mouseout: (e: VcPickEvent) => boolean;
    click: (e: VcPickEvent) => boolean;
    clickout: (e: VcPickEvent) => boolean;
    forecastRouteAdded: (e: {
        livePoint: VcTyphoonPoint;
        datasource: VcTyphoonDatasource;
        addedByClick: boolean;
    }) => boolean;
    beforeLoad: (instance: VcComponentInternalInstance) => boolean;
    ready: (readyObj: VcReadyObject) => boolean;
    unready: (e: any) => boolean;
    destroyed: (instance: VcComponentInternalInstance) => boolean;
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    typhoonRoutes: {
        type: PropType<VcTyphoonRoute[]>;
    };
    clampToGround: {
        type: BooleanConstructor;
        default: boolean;
    };
    radius7Color: {
        type: StringConstructor;
        default: string;
    };
    radius10Color: {
        type: StringConstructor;
        default: string;
    };
    radius12Color: {
        type: StringConstructor;
        default: string;
    };
    pointProps: {
        type: PropType<VcPointProps | ((e: VcTyphoonPoint) => VcPointProps)>;
        default: () => {
            color: string;
            pixelSize: number;
            outlineColor: string;
            outlineWidth: number;
            disableDepthTestDistance: number;
        };
    };
    linePrimitiveProps: {
        type: PropType<VcPrimitiveProps | ((e: VcTyphoonDatasource) => VcPrimitiveProps)>;
        default: () => {
            enableMouseEvent: boolean;
            asynchronous: boolean;
            allowPicking: boolean;
        };
    };
    lineGeometryProps: {
        type: PropType<VcGeometryPolylineProps | ((e: VcTyphoonDatasource) => VcGeometryPolylineProps)>;
        default: () => {
            width: number;
            show: boolean;
        };
    };
    labelProps: {
        type: PropType<VcLabelProps | ((e: VcTyphoonDatasource) => VcLabelProps)>;
        default: () => {
            pixelOffset: number[];
            showBackground: boolean;
            backgroundColor: string;
            enableMouseEvent: boolean;
        };
    };
    circleOverlayPosition: {
        type: PropType<string | ((e: VcTyphoonPoint) => string)>;
        default: string;
    };
    setsArray: {
        type: PropType<string[]>;
        default: () => string[];
    };
}>> & {
    onBeforeLoad?: (instance: VcComponentInternalInstance) => any;
    onReady?: (readyObj: VcReadyObject) => any;
    onUnready?: (e: any) => any;
    onDestroyed?: (instance: VcComponentInternalInstance) => any;
    onClick?: (e: VcPickEvent) => any;
    onClickout?: (e: VcPickEvent) => any;
    onMouseover?: (e: VcPickEvent) => any;
    onMouseout?: (e: VcPickEvent) => any;
    onForecastRouteAdded?: (e: {
        livePoint: VcTyphoonPoint;
        datasource: VcTyphoonDatasource;
        addedByClick: boolean;
    }) => any;
}, {
    clampToGround: boolean;
    radius7Color: string;
    radius10Color: string;
    radius12Color: string;
    pointProps: {
        color: string;
        pixelSize: number;
        outlineColor: string;
        outlineWidth: number;
        disableDepthTestDistance: number;
    };
    linePrimitiveProps: {
        enableMouseEvent: boolean;
        asynchronous: boolean;
        allowPicking: boolean;
    };
    lineGeometryProps: {
        width: number;
        show: boolean;
    };
    labelProps: {
        pixelOffset: number[];
        showBackground: boolean;
        backgroundColor: string;
        enableMouseEvent: boolean;
    };
    circleOverlayPosition: string | ((e: VcTyphoonPoint) => string);
    setsArray: string[];
}>;
export default _default;
export type VcOverlayTyphoonEmits = typeof emits;
export interface VcOverlayTyphoonProps {
    /**
     * Specify the routes of typhoon.
     */
    typhoonRoutes?: VcTyphoonRoute[];
    /**
     * Specify whether the route object is attached to the ground or 3dtiles.
     */
    clampToGround?: boolean;
    /**
     * Specify the color of radius7.
     * Default value: rgba(68, 255, 230, 0.3)
     */
    radius7Color?: VcColor;
    /**
     * Specify the color of radius10.
     * Default value: rgba(32, 237, 39, 0.3)
     */
    radius10Color?: VcColor;
    /**
     * Specify the color of radius12.
     * Default value: rgba(255, 247, 16, 0.3)
     */
    radius12Color?: VcColor;
    /**
     * Specify the props of point.
     */
    pointProps?: VcPointProps | ((e: VcTyphoonPoint) => VcPointProps);
    /**
     * Specify the props of line primitive.
     */
    linePrimitiveProps?: VcPrimitiveProps | ((e: VcTyphoonDatasource) => VcPrimitiveProps);
    /**
     * Specify the props of line geometry.
     */
    lineGeometryProps?: VcGeometryPolylineProps | ((e: VcTyphoonDatasource) => VcGeometryPolylineProps);
    /**
     * Specify the props of typhoon name label.
     */
    labelProps?: VcLabelProps | ((e: VcTyphoonDatasource) => VcLabelProps);
    /**
     * Specify the position of the background map of the typhoon wind circle.
     * Default value: '-175px'
     */
    circleOverlayPosition?: string | ((e: VcTyphoonPoint) => string);
    /**
     * Specify the forecasting agency.
     */
    setsArray?: string[];
    /**
     * Triggers before the VcOverlayHtml is loaded.
     */
    onBeforeLoad?: (instance: VcComponentInternalInstance) => void;
    /**
     * Triggers when the VcOverlayHtml is successfully loaded.
     */
    onReady?: (readyObject: VcReadyObject) => void;
    /**
     * Triggers when the component load failed.
     */
    onUnready?: (evt: any) => void;
    /**
     * Triggers when the VcOverlayHtml is destroyed.
     */
    onDestroyed?: (instance: VcComponentInternalInstance) => void;
    /**
     * Triggers when the mouse moves over to the typhoon object.
     */
    onMouseover?: (evt: VcPickEvent) => void;
    /**
     * Triggers when the mouse moves out to the typhoon object.
     */
    onMouseout?: (evt: VcPickEvent) => void;
    /**
     * Triggers when the mouse clicks on the typhoon object.
     */
    onClick?: (evt: VcPickEvent) => void;
    /**
     * Triggers when the mouse clicks outside the typhoon object.
     */
    onClickout?: (evt: VcPickEvent) => void;
    /**
     * Triggers when the forecast route is added.
     */
    onForecastRouteAdded?: (e: {
        livePoint: VcTyphoonPoint;
        datasource: VcTyphoonDatasource;
        addedByClick: boolean;
    }) => void;
}
export interface VcOverlayTyphoonRef extends VcComponentPublicInstance<VcOverlayTyphoonProps> {
    /**
     * Add typhoon track data.
     * @param typhoonRoute
     * @returns
     */
    addTyphoonRoute: (typhoonRoute: VcTyphoonRoute) => VcTyphoonDatasource;
    /**
     * Play typhoon route data.
     * @param tfbh
     * @returns
     */
    playTyphoonRoute: (tfbh: string) => void;
    /**
     * Fly to typhoon route data.
     * @param tfbhs
     * @returns
     */
    flyToTyphoonRoute: (tfbhs: string | string[]) => void;
    /**
     * Shows the forecast typhoon track of the live point.
     * @param livePoint
     * @param datasource
     * @param index
     * @param fromClick
     * @returns
     */
    showForecast: (livePoint: VcTyphoonPoint, datasource: VcTyphoonDatasource, index?: number, fromClick?: boolean) => void;
    /**
     * Remove typhoon track data.
     * @param datasource
     * @returns
     */
    removeTyphoonData: (datasource: VcTyphoonDatasource) => void;
    /**
     * Remove all typhoon track data.
     * @returns
     */
    removeAllTyphoonData: () => void;
    /**
     * Get all typhoon track data.
     * @returns
     */
    getTyphoonDatasources: () => VcTyphoonDatasource[];
}
