import { Plane } from './Plane';
import { Vec3 } from '../../math/Vec3';
import { Mat4 } from '../../math/Mat4';
import { BufferGeometry } from '../../render/geometry';
import { Sphere } from './Sphere';
import { Segment } from './Segment';
/**
 * 视锥体
 */
export declare class Frustum {
    planes: Plane[];
    constructor();
    get front(): Plane;
    get back(): Plane;
    get top(): Plane;
    get bottom(): Plane;
    get left(): Plane;
    get right(): Plane;
    /**
     * 从投影矩阵计算视锥体
     * @param m
     * @returns
     */
    setFromProjectionMatrix(m: Mat4): this;
    static fromProjectionMatrix(m: Mat4): Frustum;
    setFromPerspective(position: Vec3, target: Vec3, up: Vec3, fov: number, aspect: number, near: number, far: number): void;
    intersectsObject(geometry: BufferGeometry, mat: Mat4): boolean;
    intersectsSphere(sphere: Sphere): boolean;
    containsPoint(point: Vec3): boolean;
    intersectSegment(segment: Segment | Vec3[]): Vec3 | Vec3[] | Segment | null;
    simpleIntersectVS(vs: Vec3[]): (boolean | (boolean | Vec3)[])[];
    copy(frustum: Frustum): void;
    clone(): any;
}
