import { TileLayer, ZHeap, ZHeaps, ZWorldBlocks } from "../types"; import { Vector } from "../physics/Vector"; import TileRegistration from "../tiles/TileRegistration"; import { WorldLayer } from "./WorldLayer"; import { Rectangle } from "../physics/Rectangle"; import { ZBlockLine, ZBlockSingle, ZSBlockLine, ZSBlockSingle } from "../packets"; interface BlockEvents { load(blocks: ZWorldBlocks, heaps: ZHeaps): void; block(layer: TileLayer, position: Vector, blockId: number, playerId: number): void; } export declare class Blocks { readonly tiles: TileRegistration; readonly size: Vector; state: WorldLayer; heap: WorldLayer; /** @deprecated Use `this.state` */ get ids(): WorldLayer; /** @deprecated Use `this.size.x` */ get width(): number; /** @deprecated Use `this.size.y` */ get height(): number; readonly events: import("../nanoevents").Emitter; readonly bounds: Rectangle; constructor(tiles: TileRegistration, blocks: ZWorldBlocks, heaps: ZHeaps, size: Vector); load(blocks: ZWorldBlocks, heaps: ZHeaps): void; emitLoad(): void; clear(): void; handleLine(packet: ZBlockLine, playerId: number): boolean; handleLine(packet: ZSBlockLine): boolean; placeLine(argLayer: TileLayer | null | undefined, start: Vector, end: Vector, blockId: number, playerId: number, heap?: ZHeap | null | undefined): boolean; handleSingle(packet: ZSBlockSingle): boolean; handleSingle(packet: ZBlockSingle, playerId: number): boolean; placeSingle(argLayer: TileLayer | null | undefined, position: Vector, blockId: number, playerId: number, heap?: ZHeap | null | undefined): boolean; blockAt({ x, y }: Vector, tileLayer: TileLayer): number; layerOfTopmostBlock(x: number, y: number): TileLayer | undefined; private static emptyWorld; private static placeBorder; static makeLayer(size: Vector, value: T): T[][]; static makeYs(size: Vector, value: T): T[]; } export {};