import { default as BinaryStream } from '../../../../jsbinaryutils/src/index.ts';
import { Vector3 } from '../../../../math/src/index.ts';
import { LegacyId } from '../../block/BlockMappings';
import { default as BlockStorage } from './BlockStorage';
export default class SubChunk {
    private storages;
    constructor(storages?: Map<number, BlockStorage>);
    /**
     * Returns if the SubChunk is all air (basically empty).
     */
    isEmpty(): boolean;
    private getStorage;
    getStorages(): BlockStorage[];
    /**
     * Returns the legacy block id in the given position.
     *
     * @param bx - block x
     * @param by - block y
     * @param bz - block z
     * @param layer - block storage layer
     */
    getBlock(bx: Vector3 | number, by?: number, bz?: number, layer?: number): LegacyId;
    /**
     * Sets a block by runtime Id in the given storage layer.
     *
     * @param bx - block x
     * @param by - block y
     * @param bz - block z
     * @param runtimeId - block runtime Id
     * @param layer - block storage layer
     */
    setBlock(bx: number, by: number, bz: number, runtimeId: number, layer: number): void;
    networkSerialize(stream: BinaryStream): void;
    static networkDeserialize(stream: BinaryStream): SubChunk;
}
//# sourceMappingURL=SubChunk.d.ts.map