import { BaseMap, Position, AbstractMap, IMapInitOptions, IMarker, IPolyline, IPolygon, AbstractMarker, AbstractPolyline, AbstractPolygon, ERouteType, ERoutePolicy, CoordinateSystem } from '@tuoyuan/map-adapter-lib';
import { TMapMarker } from './Marker';
import { TMapPolyline } from './Polyline';
import { TMapPolygon } from './Polygon';
declare const tileLayerMap: {
    NORMAL: () => any;
    SATELLITE: () => any;
    HYBRID: () => any;
    TERRAIN: () => any;
    TERRAIN_HYBRID: () => any;
};
/** 天地图 */
export interface ITMapConfig {
    /** 天地图key */
    key: string;
}
export declare class TMap extends BaseMap implements AbstractMap {
    protected TMap: any;
    protected mapInstance: any;
    coordinateSystem: CoordinateSystem;
    constructor();
    load(config: ITMapConfig): Promise<void>;
    init(options: IMapInitOptions, selfOptions: {
        layer: keyof typeof tileLayerMap;
    }): Promise<any>;
    addMarker(marker: IMarker): Promise<TMapMarker<any>>;
    removeMarker(marker: AbstractMarker<any> | AbstractMarker<any>[]): Promise<void>;
    addPolyline(polyline: IPolyline): Promise<TMapPolyline<any>>;
    removePolyline(polyline: AbstractPolyline<any> | AbstractPolyline<any>[]): Promise<void>;
    addPolygon(polygon: IPolygon): Promise<TMapPolygon<any>>;
    removePolygon(polygon: AbstractPolygon<any> | AbstractPolygon<any>[]): Promise<void>;
    setCenter(center: ConstructorParameters<typeof Position>): void;
    getCenter(): Promise<Position>;
    setZoom(zoom: number): void;
    getZoom(): number;
    setLayer(layer: string): void;
    getLayer(): string;
    panTo(position: ConstructorParameters<typeof Position>): void;
    getNorthEast(): Promise<Position>;
    getSouthWest(): Promise<Position>;
    getNorthWest(): Promise<Position>;
    getSouthEast(): Promise<Position>;
    setFitView(overlays: any[]): Promise<void>;
    getViewBounds(): Promise<{
        NorthEast: Position;
        NorthWest: Position;
        SouthEast: Position;
        SouthWest: Position;
    }>;
    getNavigationPlan(origin: Position, destination: Position, type: ERouteType, policy: ERoutePolicy): Promise<{
        path: Position[];
        time: number;
        distance: number;
        instruction: string;
    }>;
    protected initEvent(): void;
    getDistanceFromPixels(pixels: number, zoom: number): Promise<number>;
}
export {};
