import { Vector2 } from 'three'; import { PatchKey } from '../utils/common_types.js'; import { ChunksVerticalRange } from '../config/WorldEnv.js'; import { ChunksTask } from '../processing/ChunksProcessing.js'; export type PatchViewRanges = { near: number; far: number; }; export type ViewState = { viewPos: Vector2; viewRanges: PatchViewRanges; }; /** * Chunks tasks creation, prioritization, cancellation * * Tasks are scheduled to follow these 2 rules: * - ground surface chunks always precedes underground chunks because view distance * is always greater above rather than below ground surface * - underground chunks always have higher priority than surface chunks because * near chunks needs to be displayed before far chunks and underground chunks are closer to player * */ export declare class ChunksPolling { viewState: ViewState; patchstate: { postponed: never[]; removed: never[]; added: never[]; }; patchViewRanges: PatchViewRanges; patchIndex: Record; onChunkAvailable: any; postponedTasks: ChunksTask[]; pendingTasks: ChunksTask[]; skipBlobCompression: boolean; chunksVerticalRange: ChunksVerticalRange; constructor(patchViewRanges: PatchViewRanges, chunksVerticalRange: ChunksVerticalRange); get visiblePatchKeys(): string[]; getVisibleChunkIds: () => import("three").Vector3Like[]; get nearBoundingRange(): import("three").Box2; get farBoundingRange(): import("three").Box2; rankTasks(): void; isBeyondNearDist: (task: ChunksTask) => boolean; viewStateChanged(viewPos: Vector2, viewRange: number): boolean; scheduleTasks(patchIndex: Record): ChunksTask[]; /** * look for chunks required each time view state changes * and schedule related tasks */ pollChunks(patchPos: Vector2, patchViewRange: number): ChunksTask[] | null; }