import { Localization } from "../Globalization/Localization.js";
import { INode } from "../NodeSystem/INode.js";
import { NodeItem } from "../NodeSystem/NodeItem.js";
import { ICategory } from "./Generic/ICategory.js";
import { ICategoryOptions } from "./ICategoryOptions.js";
import { Option } from "./Option.js";
/**
 * Represents an option-category.
 *
 * @template TOption
 * The type of the options.
 *
 * @template TOptionOptions
 * The type of the data for generating options.
 */
export declare class Category<TOption extends Option, TOptionOptions> extends NodeItem implements ICategory<TOption> {
    /**
     * The human-readable name of the category.
     */
    private displayName;
    /**
     * The description of the category.
     */
    private description;
    /**
     * A value for ordering the category.
     */
    private showOrder;
    /**
     * The options of which at least one needs to be enabled for the category to be shown to the user.
     */
    private enableOptions;
    /**
     * The options of the category.
     */
    private options;
    /**
     * Initializes a new instance of the {@link Category `Category<TOption, TOptionOptions>`} class.
     *
     * @param node
     * The node of the category.
     *
     * @param options
     * The options of the category.
     *
     * @param generator
     * A function for generating options.
     */
    constructor(node: INode, options: ICategoryOptions<TOptionOptions>, generator: (category: Category<TOption, TOptionOptions>, optionOptions: TOptionOptions) => TOption);
    /**
     * @inheritdoc
     */
    get DisplayName(): Localization;
    /**
     * @inheritdoc
     */
    get Description(): Localization;
    /**
     * @inheritdoc
     */
    get ShowOrder(): number;
    /**
     * @inheritdoc
     */
    set ShowOrder(value: number);
    /**
     * @inheritdoc
     */
    get EnableOptions(): string[];
    /**
     * @inheritdoc
     */
    set EnableOptions(value: string[]);
    /**
     * @inheritdoc
     */
    get Options(): readonly TOption[];
    /**
     * @inheritdoc
     *
     * @returns
     * The objects of the node.
     */
    GetObjects(): Record<string, unknown>;
}
