import { GraphicsDevice } from 'playcanvas';
import { type RenderCamera } from './camera';
import { DataTable } from '../data-table';
/** Tiles per group axis. 8 × 8 = 64 tiles → 128 × 128 pixels per group. */
declare const GROUP_TILES = 8;
/** Pixels per group axis. */
declare const GROUP_PX: number;
/**
 * Max gaussians per GPU dispatch. Bounds per-slot GPU buffers and the
 * granularity of the depth-ordered chunked path.
 */
declare const CHUNK_CAP = 200000;
interface BackgroundRGBA {
    r: number;
    g: number;
    b: number;
    a: number;
}
/**
 * Top-level entry point: build the BVH, walk tile groups in raster order
 * with three-slot pipelining, return the rendered RGBA buffer.
 *
 * @param device - PlayCanvas WebGPU graphics device.
 * @param dataTable - Gaussian splat data in PlayCanvas-identity space.
 * @param camera - Camera parameters.
 * @param background - RGBA background composited under residual transmittance.
 * @returns RGBA byte array of length `camera.width × camera.height × 4`.
 */
declare const renderTileStream: (device: GraphicsDevice, dataTable: DataTable, camera: RenderCamera, background: BackgroundRGBA) => Promise<Uint8Array>;
export { renderTileStream, GROUP_TILES, GROUP_PX, CHUNK_CAP };
