import { Localization } from "../Globalization/Localization";
import { INode } from "../NodeSystem/INode";
import { NodeItem } from "../NodeSystem/NodeItem";
import { ICategory } from "./Generic/ICategory";
import { ICategoryOptions } from "./ICategoryOptions";
import { Option } from "./Option";
/**
 * Represents an option-category.
 */
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 `Category` class.
     *
     * @param generator
     * A function for generating options.
     */
    constructor(node: INode, options: ICategoryOptions<TOptionOptions>, generator: (category: Category<TOption, TOptionOptions>, optionOptions: TOptionOptions) => TOption);
    /**
     * @inheritdoc
     */
    readonly DisplayName: Localization;
    /**
     * @inheritdoc
     */
    readonly Description: Localization;
    /**
     * @inheritdoc
     */
    /**
    * @inheritdoc
    */
    ShowOrder: number;
    /**
     * @inheritdoc
     */
    /**
    * @inheritdoc
    */
    EnableOptions: string[];
    /**
     * @inheritdoc
     */
    readonly Options: ReadonlyArray<TOption>;
    /**
     * @inheritdoc
     */
    GetObjects(): {
        [id: string]: any;
    };
}
