import { CameraConfig } from '../types';
import { RenderBackend } from './renderer';
export interface RenderSystemOptions {
    canvas: HTMLCanvasElement;
    preferBackend?: RenderBackend;
    backgroundColor?: [number, number, number, number];
    camera?: CameraConfig;
}
export declare class RenderSystem {
    private renderer;
    private backend;
    private canvas;
    private options;
    private camera;
    private viewMatrix;
    private projectionMatrix;
    private originalPackedData;
    renderTime: number;
    sortTime: number;
    constructor(options: RenderSystemOptions);
    /**
     * 初始化渲染系统
     */
    initialize(): Promise<void>;
    /**
     * 加载已打包的 Splat 数据（零拷贝，GPU 格式）
     * 直接接收 WASM 的 packed 数据
     *
     * @param packedData Float32Array [pos3, color4, cov6] x N 个点
     */
    loadSplatsFromPackedData(packedData: Float32Array): void;
    /**
     * 渲染一帧
     */
    renderFrame(): void;
    /**
     * 更新相机参数
     */
    updateCamera(params: Partial<CameraConfig>): void;
    /**
     * 处理窗口大小变化
     */
    handleResize(): void;
    /**
     * 获取当前使用的后端
     */
    getBackend(): RenderBackend | null;
    /**
     * 清理资源
     */
    dispose(): void;
    /**
     * 检查 WebGPU 支持
     */
    private checkWebGPUSupport;
    /**
     * 更新相机长宽比
     */
    private updateCameraAspect;
    /**
     * 更新相机矩阵
     */
    private updateCameraMatrices;
    /**
     * 获取相机前向向量
     */
    private getCameraForward;
    /**
     * 更新透视投影矩阵（复用缓冲区）
     */
    private updatePerspectiveMatrix;
    /**
     * 更新视图矩阵（直接更新预分配的缓冲区，避免每帧分配）
     * 等价于：inverse(translation) * inverse(rotation) = T^(-1) * R^(-1)
     * 其中 T 是平移矩阵，R 是旋转矩阵
     */
    private updateViewMatrix;
}
//# sourceMappingURL=RenderSystem.d.ts.map