import { SparkRenderer } from './SparkRenderer'; import { SplatAccumulator } from './SplatAccumulator'; import { SplatGeometry } from './SplatGeometry'; import * as THREE from "three"; export type SparkViewpointOptions = { autoUpdate?: boolean; camera?: THREE.Camera; viewToWorld?: THREE.Matrix4; target?: { width: number; height: number; doubleBuffer?: boolean; superXY?: number; }; onTextureUpdated?: (texture: THREE.Texture) => void; sortRadial?: boolean; sortDistance?: number; sortCoorient?: boolean; depthBias?: number; sort360?: boolean; }; export declare class SparkViewpoint { spark: SparkRenderer; autoUpdate: boolean; camera?: THREE.Camera; viewToWorld: THREE.Matrix4; lastTime: number | null; target?: THREE.WebGLRenderTarget; private back?; onTextureUpdated?: (texture: THREE.Texture) => void; encodeLinear: boolean; superXY: number; private superPixels?; private pixels?; sortRadial: boolean; sortDistance?: number; sortCoorient?: boolean; depthBias?: number; sort360?: boolean; display: { accumulator: SplatAccumulator; viewToWorld: THREE.Matrix4; geometry: SplatGeometry; } | null; private sorting; private pending; private sortingCheck; private readback; private orderingFreelist; constructor(options: SparkViewpointOptions & { spark: SparkRenderer; }); dispose(): void; setAutoUpdate(autoUpdate: boolean): void; prepare({ scene, camera, viewToWorld, update, forceOrigin, }: { scene: THREE.Scene; camera?: THREE.Camera; viewToWorld?: THREE.Matrix4; update?: boolean; forceOrigin?: boolean; }): Promise; renderTarget({ scene, camera, }: { scene: THREE.Scene; camera?: THREE.Camera; }): void; readTarget(): Promise; prepareRenderPixels({ scene, camera, viewToWorld, update, forceOrigin, }: { scene: THREE.Scene; camera?: THREE.Camera; viewToWorld?: THREE.Matrix4; update?: boolean; forceOrigin?: boolean; }): Promise>; autoPoll({ accumulator }: { accumulator?: SplatAccumulator; }): void; private driveSort; private sortUpdate; private updateDisplay; static EMPTY_TEXTURE: THREE.Texture; private static dynos; private static makeSorter; }