import EventEmitter from 'eventemitter3';
import { SourceTile } from './tile';
import { TileBounds, TilesetManagerOptions } from './types';
export declare enum TileEventType {
    TilesLoadStart = "tiles-load-start",
    TileLoaded = "tile-loaded",
    TileError = "tile-error",
    TileUnload = "tile-unload",
    TileUpdate = "tile-update",
    TilesLoadFinished = "tiles-load-finished"
}
/**
 * 管理瓦片数据
 */
export declare class TilesetManager extends EventEmitter {
    currentZoom?: number;
    get isLoaded(): boolean;
    get tiles(): SourceTile[];
    currentTiles: SourceTile[];
    protected options: TilesetManagerOptions;
    private cacheTiles;
    private lastViewStates?;
    constructor(options: Partial<TilesetManagerOptions>);
    updateOptions(options: Partial<TilesetManagerOptions>): void;
    throttleUpdate: import("lodash").DebouncedFunc<(zoom: any, latLonBounds: any) => void>;
    update(zoom: number, latLonBounds: [number, number, number, number]): void;
    reloadAll(): void;
    reloadTileById(z: number, x: number, y: number): void;
    reloadTileByLnglat(lng: number, lat: number, z: number): void;
    reloadTileByExtent(extent: TileBounds, z: number): void;
    pruneRequests(): void;
    getTileByLngLat(lng: number, lat: number, zoom: number): SourceTile;
    getTileExtent(extent: TileBounds, zoom: number): {
        x: number;
        y: number;
        z: number;
    }[];
    getTileByZXY(z: number, x: number, y: number): SourceTile;
    clear(): void;
    destroy(): void;
    updateTileVisible(): void;
    protected getTileIndices(zoom: number, latLonBounds: [number, number, number, number]): {
        x: number;
        y: number;
        z: number;
    }[];
    private onTileLoad;
    private onTileError;
    private onTileUnload;
    private getTileId;
    private loadFinished;
    private getTile;
    private createTile;
    private resizeCacheTiles;
    private rebuildTileTree;
    private getNearestAncestor;
}
