import type { NbtCompressionMode } from '../nbt/index.js'; import { NbtCompound } from '../nbt/index.js'; import { BlockPos } from './BlockPos.js'; import { BlockState } from './BlockState.js'; import type { Identifier } from './Identifier.js'; import { Registry } from './Registry.js'; import { Rotation } from './Rotation.js'; import type { StructureProvider } from './StructureProvider.js'; type StoredBlock = { pos: BlockPos; state: number; nbt?: NbtCompound; }; export type PlacedBlock = { pos: BlockPos; state: BlockState; nbt?: NbtCompound; }; export interface StructureNbtOptions { dataVersion?: number; updateBlockStates?: boolean; } export interface StructureNbtWriteOptions extends StructureNbtOptions { name?: string; compression?: NbtCompressionMode; } export interface StructureBlockStateUpdateResult { updatedBlocks: number; } export declare class Structure implements StructureProvider { private readonly size; private readonly palette; private readonly blocks; static readonly REGISTRY: Registry; static readonly EMPTY: Structure; private blocksMap; private readonly xStride; private readonly yStride; private placedBlocksCache; private placedBlocksMapCache; private readonly paletteIndex; constructor(size: BlockPos, palette?: BlockState[], blocks?: StoredBlock[]); getSize(): BlockPos; addBlock(pos: BlockPos, name: Identifier | string, properties?: { [key: string]: string; }, nbt?: NbtCompound): this; getBlocks(): PlacedBlock[]; getBlock(pos: BlockPos): PlacedBlock | null; clone(): Structure; updateBlockStates(): StructureBlockStateUpdateResult; private toPlacedBlock; isInside(pos: BlockPos): boolean; private getIndex; private ensurePlacedCaches; private clearPlacedCaches; toNbt(options?: StructureNbtOptions): NbtCompound; writeNbt(options?: StructureNbtWriteOptions): Uint8Array; static fromNbt(nbt: NbtCompound): Structure; static transform(pos: BlockPos, rotation: Rotation, pivot: BlockPos): BlockPos; } export {}; //# sourceMappingURL=Structure.d.ts.map