import { default as Server } from '../Server';
import { Item } from './Item';
export default class ItemManager {
    private readonly server;
    private readonly items;
    /**
     * Construct an ItemManager.
     * @param {Server} server - The server instance.
     * @returns {ItemManager} The item manager instance.
     */
    constructor(server: Server);
    /**
     * On enable hook.
     * @group Lifecycle
     */
    enable(): Promise<void>;
    /**
     * On disable hook.
     * @group Lifecycle
     */
    disable(): Promise<void>;
    /**
     * Get an item from it's name.
     * @param {string} name - tha item's name.
     * @returns {Item | null} the item.
     */
    getItem(name: string): Item | null;
    /**
     * Get item by numeric id
     * @param {number} id - tha item's ID.
     * @returns {Item | null} the item.
     */
    getItemById(id: number): Item | null;
    /**
     * Get all items.
     * @returns {Item[]} all registered items.
     */
    getItems(): Item[];
    /**
     * Register an item.
     * @param {Item} item - The item to be registered
     * @returns {Promise<void>} The promise.
     */
    registerItem: (item: Item) => Promise<void>;
    /**
     * Register items exported by './Items'.
     */
    private importItems;
}
//# sourceMappingURL=ItemManager.d.ts.map