import { mat4 } from 'gl-matrix'; import type GenericHitRegion from './hitRegion/GenericHitRegion'; import Traversable from './Traversable'; import TransformNode from './TransformNode'; import Renderable from './Renderable'; import UniformProivder from './UniformProvider'; import { Camera } from './camera/GenericCamera'; import { Renderer } from '../boxes'; declare type RenderTask = { task?: (gl: WebGLRenderingContext, view: mat4, projection: mat4) => void; order: number; subtasks?: RenderTask[]; layer: number; }; export default class Scene extends Traversable { private worldMatrix; private renderQueue; private shouldRebuildSceneGraph; activeCamera: Camera; activeLayer: number | undefined; readonly isScene = true; static queueRenderables(renderer: Renderer, node: Renderable | TransformNode | UniformProivder | Traversable, renderQueue: RenderTask[], uniformProviders: UniformProivder[], queueMasks: boolean, parentLayer: number | undefined): void; static runRecursive(task: RenderTask, renderer: Renderer, view: mat4, projection: mat4, layer: number | undefined): void; calculateTransforms(node: Renderable | TransformNode | GenericHitRegion | Traversable, parentWorldMatrix: mat4): void; invalidateSceneGraph(): void; render(renderer: Renderer): void; } export {};