import { TagData } from "../nbt";
import { BitParser } from "../util";
import { BlockStates, Palette } from "./types";
export declare function blockTypeString(t: TagData[]): string;
export declare function block(t: TagData[]): {
    name: string;
    properties: {
        [key: string]: string;
    };
};
export declare function blockTypeID(t: TagData[]): number;
export declare function paletteNameList(palette: Palette): string[];
export declare function paletteAsList(palette: Palette): {
    name: string;
    properties: {
        [key: string]: string;
    };
}[];
export declare function paletteBlockList(palette: Palette): string[];
export declare class BlockDataParser extends BitParser {
    private palette;
    private blockTypeStringMap;
    private blockTypeIDMap;
    private blockTypeIDToStringMap;
    private paletteNames;
    static writeBlockStates(states: number[], palette?: Palette): [ArrayBuffer, Palette | undefined];
    constructor(blockStates: BlockStates, palette: Palette);
    private getBlocksGenericOriginal;
    private getBlocksGeneric;
    private getBlockTypeIDMap;
    private getBlockTypeStringMap;
    private getBlockTypeIDToStringMap;
    getRawBlocks(original?: boolean, limit?: number): number[];
    getBlocks(original?: boolean, limit?: number): TagData[][];
    getBlockTypeNames(original?: boolean, limit?: number): (string | undefined)[];
    getBlockTypeIDs(original?: boolean, limit?: number): (number | undefined)[];
    blockStateFromHash(hash: number): string;
    findBlocksByName(name: string): number[];
}
