import { TWrapper } from '../../Abstract'; import { TActor } from '../../Actor'; import { TDestroyable } from '../../Mixins'; import { TSceneWrapper } from '../../Scene'; import { Observable } from 'rxjs'; import { ColorRepresentation } from 'three'; import { TSpatialCellId } from './TSpatialCellId'; import { TSpatialCellWrapper } from './TSpatialCellWrapper'; import { TSpatialGrid } from './TSpatialGrid'; import { TSpatialGridParams } from './TSpatialGridParams'; export type TSpatialGridWrapper = TWrapper & TDestroyable & Readonly<{ addActor: (actor: TActor) => void | never; getAllCells: () => ReadonlyArray; getAllInCell: (x: number, z: number) => ReadonlyArray; getAllInCellByCellId: (cellId: TSpatialCellId) => ReadonlyArray; findCellsForPoint: (x: number, z: number) => ReadonlyArray; findCellsForBox: (box: Readonly<{ minX: number; minZ: number; maxX: number; maxZ: number; }>) => ReadonlyArray; findCellsByActorBox: (actor: TActor) => ReadonlyArray; findCellById: (id: TSpatialCellId) => TSpatialCellWrapper | undefined; removeFromGrid: (actor: TActor) => void; clearGrid: () => void; updateActorCell: (actor: TActor) => void; getParams: () => TSpatialGridParams; _debugVisualizeCells: (sceneW: TSceneWrapper, color?: ColorRepresentation, wireframe?: boolean) => void; _removeDebugVisualizeCells: (sceneW: TSceneWrapper) => void; _debugHighlightObjects: (sceneW: TSceneWrapper, x: number, z: number) => void; update$: Observable; }>;