import type { GeometryProps, Engine } from '@galacean/effects';
import { Mesh } from '@galacean/effects';
import type { Matrix4 } from '../runtime/math';
import { Vector2, Vector3 } from '../runtime/math';
/**
 * FBO 选项类，负责构造 FBO 创建时的选项信息
 */
export declare class FBOOptions {
    /**
     * 分辨率
     */
    resolution: Vector2;
    /**
     * 颜色附件列表
     */
    colorAttachments: object[];
    /**
     * 深度附件
     */
    depthAttachment?: any;
    /**
     * 构造函数
     * @param options - FBO 参数
     */
    constructor(options: Record<string, any>);
    /**
     * 添加深度附件
     * @param options - 深度附件参数
     */
    addDepthAttachment(options: Record<string, any>): void;
    /**
     * 添加默认深度附件，数据格式是 depth_16_texture
     */
    addDefaultDepthAttachment(): void;
    /**
     * 删除深度附件
     */
    deleteDepthAttachment(): void;
    /**
     * 添加颜色附件
     * @param options - 颜色附件参数
     */
    addColorAttachment(options: Record<string, any>): void;
    /**
     * 删除颜色附件，按照索引值
     * @param target - 颜色附件索引值
     */
    deleteColorAttachment(target: number): void;
    /**
     * 获取视口大小
     */
    get viewport(): [number, number, number, number];
}
/**
 * 包围盒 Mesh 类，负责 3D Mesh 测试包围盒的显示
 */
export declare class BoxMesh {
    /**
     * core 层 Mesh 对象
     */
    mesh: Mesh;
    /**
     * 构造函数，创建基础 Mesh 对象
     * @param engine - 引擎
     * @param priority - 优先级
     */
    constructor(engine: Engine, priority: number);
    /**
     * 更新包围盒着色器 Uniform 数据
     * @param modelMatrix - 模型矩阵
     * @param viewProjMatrix - 相机投影矩阵
     * @param positions - 位置数组
     * @param lineColor - 线颜色
     */
    update(modelMatrix: Matrix4, viewProjMatrix: Matrix4, positions: Float32Array, lineColor: Vector3): void;
    /**
     * 销毁，需要销毁 Mesh 对象
     */
    dispose(): void;
    /**
     * 获取顶点着色器代码
     */
    get vertexShader(): string;
    /**
     * 获取片段着色器代码
     */
    get fragmentShader(): string;
    /**
     * 获取基础几何体
     */
    get geometry(): GeometryProps;
}
