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