import { Box2, Vector2 } from 'three'; import { PatchKey } from '../utils/common_types.js'; import { WorldModules } from '../factory/WorldModules.js'; import { ChunkBlocksContainer, SpawnChunk, SpawnChunkStub, SpawnData } from '../factory/ChunksFactory.js'; import { BaseProcessingParams, ProcessingTask, ProcessingTaskHandler } from './TaskProcessing.js'; /** * Calling side */ export declare enum ItemsTaskRecipe { SpawnedElements = "SpawnedElements", SpawnedChunks = "SpawnedChunks", MergedSpawnedChunk = "MergedSpawnedChunk" } export type ItemsTaskInput = Box2 | PatchKey | Vector2[]; export type ItemsTaskOutput = ChunkBlocksContainer | SpawnChunk[] | SpawnChunkStub[] | SpawnData[]; export type ItemsTaskParams = BaseProcessingParams & { recipe: ItemsTaskRecipe; skipPostprocessing?: boolean; skipOverlapPruning?: boolean; spawnInsideAreaOnly?: boolean; }; export declare class ItemsTask extends ProcessingTask { static handlerId: string; constructor(); postProcess(rawTaskOutput: any): any; /** * Build templates for most common tasks, allowing manual post adjustment through processingParams * - instance versions allow use from child classes * - static versions allow better types inferance */ /** * Instance versions * @param recipe * @returns */ getBuildTemplate(recipe: ItemsTaskRecipe): (input: ProcessingInput) => this; get spawnedElements(): (input: ProcessingInput) => this; get spawnedChunks(): (input: ProcessingInput) => this; get mergedSpawnChunk(): (input: ProcessingInput) => this; /** * Static versions */ static factory: (recipe: ItemsTaskRecipe) => (input: ProcessingInput_1) => ItemsTask; static get spawnedChunks(): (input: ItemsTaskInput) => ItemsTask; static get mergedSpawnChunk(): (input: ItemsTaskInput) => ItemsTask; } type ItemsProcessingHandler = ProcessingTaskHandler; export type DiscardedSlot = Partial & { spawnStage: number; spawnPass: number; bounds?: Box2; }; export declare const createItemsTaskHandler: (worldModules: WorldModules) => ItemsProcessingHandler; export {};