import { Tile } from './tile';
export declare type TileBounds = [number, number, number, number];
export declare enum UpdateTileStrategy {
    Realtime = "realtime",
    Overlap = "overlap",
    Replace = "replace"
}
export declare type TileOptions = {
    x: number;
    y: number;
    z: number;
    tileSize: number;
};
export declare type TileLoadParams = TileOptions & {
    bounds: TileBounds;
    signal: AbortSignal;
};
export declare type TileLoadDataOptions = {
    getData: (params: TileLoadParams, tile: Tile) => Promise<any>;
    onLoad: (tile: Tile) => void;
    onError: (error: Error, tile: Tile) => void;
};
export declare enum LoadTileDataStatus {
    Loading = "Loading",
    Loaded = "Loaded",
    Failure = "Failure",
    Cancelled = "Cancelled"
}
export declare type TilesetManagerOptions = {
    tileSize: number;
    zoomOffset: number;
    minZoom: number;
    maxZoom: number;
    extent: TileBounds;
    getTileData: (params: TileLoadParams, tile: Tile) => any;
    updateStrategy: UpdateTileStrategy | ((tiles: Tile[]) => void);
};
