import { Plane } from 'three';
import { LineSegments2 } from 'three/examples/jsm/lines/LineSegments2.js';
import MeshBatch from './batching/MeshBatch';
export declare enum PlaneId {
    POSITIVE_X = "POSITIVE_X",
    POSITIVE_Y = "POSITIVE_Y",
    POSITIVE_Z = "POSITIVE_Z",
    NEGATIVE_X = "NEGATIVE_X",
    NEGATIVE_Y = "NEGATIVE_Y",
    NEGATIVE_Z = "NEGATIVE_Z"
}
export interface PlaneOutline {
    renderable: LineSegments2;
}
export declare class SectionBoxOutlines {
    private static readonly INITIAL_BUFFER_SIZE;
    private static readonly Z_OFFSET;
    private tmpVec;
    private tmpVec2;
    private up;
    private down;
    private left;
    private right;
    private forward;
    private back;
    private planeOutlines;
    constructor();
    getPlaneOutline(planeId: PlaneId): PlaneOutline;
    enable(value: boolean): void;
    updateClippingPlanes(planes: Plane[]): void;
    updatePlaneOutline(batches: MeshBatch[], _plane: Plane): void;
    private createPlaneOutline;
    private resizeGeometryBuffer;
    private getPlaneId;
}
