import { Layer } from "./layer";
import { Context } from "../context/context";
import { Group, Mesh, PlaneGeometry } from "three";
import { TileLoader } from "../loader/TileLoader";
interface TileConfig {
    extent: [number, number, number, number];
    maxZoom: number;
    minZoom: number;
}
export interface TileLayerConfig {
    base_url: string;
}
export declare class TileLayer extends Layer {
    static readonly WORLD_WIDTH = 40075016.68;
    static readonly WORLD_WIDTH_HALF: number;
    tileLoader: TileLoader;
    tileGroup: Group;
    loadedTiles: Map<string, Mesh>;
    currentLevel: number;
    tileSize: number;
    baseGeometry: PlaneGeometry;
    options: TileLayerConfig;
    constructor(context: Context, options?: Partial<TileLayerConfig>);
    /**
     * 加载瓦片配置
     */
    loadTileConfig(): Promise<TileConfig>;
    /**
     * 初始化事件监听
     */
    initEvents(): void;
    /**
     * 移除事件监听
     */
    removeEvents(): void;
    /**
     * 更新处理函数
     */
    onUpdate: () => void;
    onCenterChange: () => void;
    /**
     * 更新瓦片显示
     */
    updateTiles: import("lodash").DebouncedFunc<() => Promise<void>>;
    /**
     * 获取视图边界
     */
    getViewBounds(): {
        minX: number;
        minY: number;
        maxX: number;
        maxY: number;
    } | null;
    /**
     * 根据相机缩放级别获取瓦片缩放级别
     */
    getTileZoomLevel(cameraZoom: number, config: TileConfig): number;
    /**
     * 获取视图范围内的瓦片
     */
    getTilesInView(bounds: {
        minX: number;
        minY: number;
        maxX: number;
        maxY: number;
    }, zoom: number, config: TileConfig): Array<{
        x: number;
        y: number;
        z: number;
    }>;
    /**
     * 渲染瓦片
     */
    renderTiles(tiles: Array<{
        x: number;
        y: number;
        z: number;
    }>, zoom: number): Promise<void>;
    /**
     * 设置图层可见性
     */
    setVisibility(visible: boolean): void;
    /**
     * 设置透明度
     */
    setOpacity(opacity: number): void;
    /**
     * 清除已加载的瓦片
     */
    clearTiles(): void;
    /**
     * 销毁图层
     */
    dispose(): void;
}
export {};
