import { ICategory } from "../ICategory.js";
import { Option } from "../Option.js";
import { EditPermission } from "./EditPermission.js";
import { IUserOptionOptions } from "./IUserOptionOptions.js";
import { ViewPermission } from "./ViewPermission.js";
/**
 * Represents an option for users.
 */
export declare class UserOption extends Option {
    /**
     * A value indicating whether the option is required.
     */
    private required;
    /**
     * A value indicating whether users are ask for setting the option during registration.
     */
    private askOnRegistration;
    /**
     * The permissions which are required for editing the option.
     */
    private editPermissions;
    /**
     * The permissions which are required for viewing the option.
     */
    private viewPermissions;
    /**
     * A value indicating whether users can be searched by the value of the option.
     */
    private searchable;
    /**
     * The php-class which formats the output of the option.
     *
     * The class must implement the `wcf\system\option\user\IUserOptionOutput` interface.
     */
    private outputClass;
    /**
     * Initializes a new instance of the {@link UserOption `UserOption`} class.
     *
     * @param category
     * The category of the option.
     *
     * @param options
     * The options of the user-option.
     */
    constructor(category: ICategory, options: IUserOptionOptions);
    /**
     * Gets or sets a value indicating whether the option is required.
     */
    get Required(): boolean;
    /**
     * @inheritdoc
     */
    set Required(value: boolean);
    /**
     * Gets or sets a value indicating whether users are ask for setting the option during registration.
     */
    get AskOnRegistration(): boolean;
    /**
     * @inheritdoc
     */
    set AskOnRegistration(value: boolean);
    /**
     * Gets or sets the permissions which are required for editing the option.
     */
    get EditPermissions(): EditPermission;
    /**
     * @inheritdoc
     */
    set EditPermissions(value: EditPermission);
    /**
     * Gets or sets the permissions which are required for viewing the option.
     */
    get ViewPermissions(): ViewPermission;
    /**
     * @inheritdoc
     */
    set ViewPermissions(value: ViewPermission);
    /**
     * Gets or sets a value indicating whether users can be searched by the value of the option.
     */
    get Searchable(): boolean;
    /**
     * @inheritdoc
     */
    set Searchable(value: boolean);
    /**
     * Gets or sets the php-class which formats the output of the option.
     *
     * The class must implement the `wcf\system\option\user\IUserOptionOutput` interface.
     */
    get OutputClass(): string;
    /**
     * @inheritdoc
     */
    set OutputClass(value: string);
}
