import RelationBaseChartStore from '../stores/relation-base';
import MigrationChartStyleService from '../../../base-pandora-visualization/services/chart-style/charts/migration/base';
import { EGeoLevel } from '../../../constants/map-style';
import { EGeolevelType } from '../constants/map/coordMap';
import { MapType } from '../constants/map/map';
import { ICityItem, IRelationItem } from './constants';
export default abstract class MigrationChartStore<T extends MigrationChartStyleService> extends RelationBaseChartStore<T> {
    abstract datas: {
        citys: ICityItem[];
        relations: IRelationItem[];
    };
    abstract mapType: MapType;
    get relationRange(): {
        max: number;
        min: number;
    };
    get containCitySansha(): boolean;
    get geoLevalType(): EGeolevelType;
    get map(): EGeoLevel.CITYMax | MapType.China | EGeolevelType.CITY | EGeolevelType.AREA | EGeolevelType.WORLD;
    get mapPosition(): any;
    get defaultColors(): any;
    get gradientColor(): string[];
    get options(): {
        tooltip: {
            padding: number[];
            trigger: string;
            position(_point: any, _params: any, dom: any): void;
            formatter: (params: any) => string;
        };
        visualMap: {
            calculable: boolean;
            show: boolean;
            inRange: {
                color: string[];
            };
            textStyle: {
                color: string;
            };
            formatter: (val: number) => any;
            max: number;
            min: number;
        };
        geo: any;
        legend: {
            show: boolean;
        };
        series: ({
            type: string;
            zlevel: number;
            coordinateSystem: string;
            symbol: string[];
            lineStyle: {
                normal: {
                    opacity: number;
                    width: number;
                    curveness: number;
                };
            };
            data: IRelationItem[];
            effect?: undefined;
            silent?: undefined;
            symbolSize?: undefined;
            hoverAnimation?: undefined;
            rippleEffect?: undefined;
            label?: undefined;
            itemStyle?: undefined;
        } | {
            type: string;
            zlevel: number;
            coordinateSystem: string;
            symbol: string[];
            effect: {
                show: boolean;
                constantSpeed: number;
                trailLength: number;
                symbolSize: number;
            };
            lineStyle: {
                normal: {
                    width: number;
                    curveness: number;
                    opacity?: undefined;
                };
            };
            silent: boolean;
            data: IRelationItem[];
            symbolSize?: undefined;
            hoverAnimation?: undefined;
            rippleEffect?: undefined;
            label?: undefined;
            itemStyle?: undefined;
        } | {
            type: string;
            zlevel: number;
            coordinateSystem: string;
            data: {
                itemStyle: {
                    color: any;
                    borderColor: any;
                };
                title: string;
                value: number[];
                inflowSize: number;
                outflowSize: number;
            }[];
            symbol: string;
            symbolSize: (_: any, param: any) => number | undefined;
            hoverAnimation: boolean;
            rippleEffect: {
                brushType: string;
            };
            label: {
                normal: {
                    formatter: (params: any) => any;
                    position: string;
                    show: boolean;
                };
            };
            itemStyle: {
                normal: {
                    borderWidth: number;
                    shadowColor: string;
                    shadowBlur: number;
                };
            };
            lineStyle?: undefined;
            effect?: undefined;
            silent?: undefined;
        })[];
    };
    get symbolSize(): (_: any, param: any) => number | undefined;
    private generateSeries;
    handleDrillDown(params: any): void;
}
