import { Color, Object3D, OrthographicCamera, PerspectiveCamera, Plane } from 'three';
import type { IMap2DVisibilitor, Map2DVisibleTiles } from './IMap2DVisibilitor.js';
import { Map2DTile } from './Map2DTile.js';
import { Map2DTileCoordsUtil } from './Map2DTileCoordsUtil.js';
export declare class CameraBasedVisibility implements IMap2DVisibilitor {
    #private;
    static readonly Plane: Plane;
    frustumBoxScale: number;
    lookAtCenter: boolean;
    depth: number;
    camera?: PerspectiveCamera | OrthographicCamera;
    debugNextVisibleTiles: boolean;
    maxDebugHelpers: number;
    tileBoxHelperExpand: number;
    frustumBoxHelperExpand: number;
    frustumBoxHelperColor: Color;
    frustumBoxPrimaryHelperColor: Color;
    tileBoxHelperColor: Color;
    tileBoxPrimaryHelperColor: Color;
    constructor(camera?: PerspectiveCamera | OrthographicCamera);
    get needsUpdate(): boolean;
    set needsUpdate(_update: boolean);
    get showHelpers(): boolean;
    set showHelpers(showHelpers: boolean);
    private dependenciesChanged;
    computeVisibleTiles(previousTiles: Map2DTile[], [centerX, centerY]: [number, number], map2dTileCoords: Map2DTileCoordsUtil, node: Object3D): Map2DVisibleTiles | undefined;
    private findPointOnPlaneThatIsInViewFrustum;
    private findVisibleTiles;
    private makePointOnPlane;
    private convertToPlaneCoords2D;
    private createHelpers;
    private createPlaneHelpers;
    private createTileHelpers;
    private addPointHelper;
    private addBoxHelper;
    private makeBox;
    addToScene(scene: Object3D): void;
    removeFromScene(scene: Object3D): void;
}
//# sourceMappingURL=CameraBasedVisibility.d.ts.map