import { Tile3DLayer as DeckTile3DLayer } from '@deck.gl/geo-layers';
import { UpdateParameters } from '@deck.gl/core';
import { Tileset3D, Tile3D } from '@loaders.gl/tiles';
import Layer from '../base-layer';
import Tile3DLayerIcon from './tile3d-layer-icon';
import { FindDefaultLayerPropsReturnValue } from '../layer-utils';
import { DatasetType } from '@kepler.gl/constants';
import { KeplerTable as KeplerDataset, Datasets as KeplerDatasets } from '@kepler.gl/table';
import { VisConfigNumber } from '@kepler.gl/types';
/**
 * Custom DeckTile3DLayer that catches exceptions in _loadTileset and
 * _updateTileset (which calls selectTiles – an unhandled-promise path
 * where errors like "boundingVolume must contain …" escape).
 * See: https://github.com/visgl/deck.gl/issues/8755
 */
declare class KeplerTile3DLayer extends DeckTile3DLayer {
    private _loadTileset;
    /**
     * Override _updateTileset to catch errors from selectTiles(),
     * which deck.gl calls with .then() but no .catch().
     * Errors from tilesetInitializationPromise (e.g. invalid boundingVolume
     * in child tiles) surface here as unhandled promise rejections.
     */
    private _updateTileset;
    updateState(params: UpdateParameters<this>): void;
}
export declare const TILE3D_LAYER_TYPE: "tile3d";
export type Tile3DLayerVisConfigSettings = {
    opacity: VisConfigNumber;
    pointSize: VisConfigNumber;
};
export type Tile3DLayerVisConfig = {
    opacity: number;
    pointSize: number;
};
export declare const tile3DVisConfigs: {
    opacity: VisConfigNumber;
    pointSize: VisConfigNumber;
};
export default class Tile3DLayer extends Layer {
    visConfigSettings: Tile3DLayerVisConfigSettings;
    private _cachedDataAndLoader;
    private _layerCallbacks;
    private _hasFittedBounds;
    constructor(props: {
        dataId: string;
    } & Record<string, any>);
    static findDefaultLayerProps(dataset: KeplerDataset): FindDefaultLayerPropsReturnValue;
    get type(): string;
    get name(): string;
    get requireData(): boolean;
    get requiredLayerColumns(): string[];
    get layerIcon(): typeof Tile3DLayerIcon;
    get supportedDatasetTypes(): DatasetType[];
    get visualChannels(): {};
    shouldRenderLayer(): boolean;
    getHoverData(): any;
    formatLayerData(datasets: KeplerDatasets): Record<string, any>;
    updateLayerMeta(dataset: KeplerDataset): void;
    _getDataAndLoaderOptions(tileUrl: string, accessToken?: string): {
        data: string;
        loadOptions?: Record<string, unknown>;
        loader?: any;
    };
    _onTilesetLoad: (tileset3d: Tileset3D) => void;
    _extractBoundsFromTileset(tileset3d: Tileset3D): void;
    _onTileLoad: (tile: Tile3D) => void;
    _onTileUnload: (_tile: Tile3D) => void;
    renderLayer(opts: any): KeplerTile3DLayer[];
}
export {};
