/**
 * @mergeTarget
 * @module Src/Categories
 */
import { LisioParameterNames } from "../parameter/lisio-parameter.js";
import { LisioProfileNames } from "../profile/lisio-profile.js";
/**
 * Enumetor for all categories availables in Lisio
 * @source
 */
declare enum LisioCategoryNames {
    ACCESSIBILITY = "accessibility",
    COMFORT = "comfort",
    GOOGLE_TRANSLATION = "google_translation",
    DEEPL_TRANSLATION = "deepl_translation",
    SPEECH_SYNTHESIS = "speech_synthesis",
    RURAL = "rural",
    LIGHT_ECOLOGICAL = "light_ecological",
    ECOLOGICAL = "ecological",
    DALTONISM = "daltonism",
    DYSLEXIA_COMFORT = "dyslexia_comfort",
    SETTINGS = "settings"
}
/**
 * ## How to create a new category ? Part 1
 *
 * To create a new category is very easy, choose a revelant name and add it to {@link LisioCategoryNames | LisioCategoryNames}.\
 * Next go to {@link Src/Categories.LisioCategoryFactory | LisioCategoryFactory}
 *
 * ## How to modify a category ? Part 1
 *
 * If you don't want to rename your category skip to part 2 {@link Src/Categories.LisioCategoryFactory | LisioCategoryFactory}.\
 * To rename a category is very easy, choose a new revelant name and cahnge old name in {@link LisioCategoryNames | LisioCategoryNames}.\
 * Next go to {@link Src/Categories.LisioCategoryFactory | LisioCategoryFactory}
 *
 * ## How to delete a category ? Part 1
 *
 * To delete a category is very easy, delete his name from {@link LisioCategoryNames | LisioCategoryNames}.\
 * Next go to {@link Src/Categories.LisioCategoryFactory | LisioCategoryFactory}
 *
 * ## Documentation
 *
 * Class representing a category.\
 * It aims to centralize all the logic of categories.\
 * To execute his responsability this class does :
 *  * Saves name, subcategories, used profiles and parameters
 */
declare class LisioCategory {
    /**
     * Private attribute to store category name
     * @source
     */
    private _name;
    /**
     * Private attribute to store all parameters of category
     * @source
     */
    private _parameterNames;
    /**
     * Private attribute to store all profiles of category
     * @source
     */
    private _profileNames;
    /**
     * Private attribute to store all subcategories of category
     * @source
     */
    private _subCategoriesNames;
    /**
     * Getter for attribute {@link _name | _name}
     * @returns Returns _name attribute
     * @source
     */
    get name(): LisioCategoryNames;
    /**
     * Getter for attribute {@link _profileNames | _profileNames}
     * @returns Returns _profileNames attribute
     * @source
     */
    get profileNames(): LisioProfileNames[];
    /**
     * Getter for attribute {@link _parameterNames | _parameterNames}
     * @returns Returns _parameterNames attribute
     * @source
     */
    get parameterNames(): LisioParameterNames[];
    /**
     * Getter for attribute {@link _subCategoriesNames | _subCategoriesNames}
     * @returns Returns _subCategoriesNames attribute
     * @source
     */
    get subCategoriesNames(): LisioCategoryNames[];
    /**
     * Constructor of class {@link LisioCategory | LisioCategory}
     * @param {LisioCategoryNames} name
     * @param {LisioProfileNames[]} profileNames - All profiles of category
     * @param {LisioParameterNames[]} parameterNames - All parameters of category
     * @param {LisioCategoryNames[]} subCategoriesNames - All subcategories of category
     * @source
     */
    constructor(name: LisioCategoryNames, profileNames: LisioProfileNames[], parameterNames: LisioParameterNames[], subCategoriesNames: LisioCategoryNames[]);
}
export { LisioCategory, LisioCategoryNames };
