import { default as Server } from '../Server';
import { Block } from './Block';
export default class BlockManager {
    private readonly server;
    private readonly blocks;
    private readonly javaBlocks;
    constructor(server: Server);
    /**
     * On enable hook.
     * @group Lifecycle
     */
    enable(): Promise<void>;
    /**
     * On disable hook.
     * @group Lifecycle
     */
    disable(): Promise<void>;
    /**
     * Get block by namespaced ID.
     */
    getBlock(name: string): Block;
    /**
     * Get block by numeric ID.
     */
    getBlockById(id: number): Block;
    /**
     * Get block by numeric id and meta value.
     */
    getBlockByIdAndMeta(id: number, meta: number): Block | null;
    /**
     * Get all blocks.
     *
     * @returns all registered blocks.
     */
    getBlocks(): Block[];
    /**
     * Register a block.
     *
     * @param block - The block
     */
    registerBlock(block: Block): Promise<void>;
    /**
     * Register blocks exported by './Blocks'
     */
    private importBlocks;
}
//# sourceMappingURL=BlockManager.d.ts.map