import { PageControlBindings } from ".";
/**
 * Properties for {@link SVICustomElement.LabelledControl}.
 *
 * @category Properties
 *
 * @example HTML Example:
 * ```html
 * <svi-labelled-control
 *   [childNode]="childNode"
 *   [pageModel]="pageModel"
 * >
 *   <!-- my control -->
 * </svi-labelled-control>
 * ```
 *
 * @example Create the element via document.createElement:
 * ```ts
 * const labelledControl = document.createElement(SVICustomElement.LabelledControl);
 * labelledControl.pageModel = this.pageModel;
 * labelledControl.childNode = this.childNode;
 * labelledControl.appendChild(myControlElement)
 * ```
 */
export interface LabelledControlProperties extends PageControlBindings {
    /** Set the label as required. */
    isRequired?: boolean;
    /** Set the label as disabled. */
    isDisabled?: boolean;
    /** Override the text displayed in the label. */
    overrideLabel?: string;
    /** Add css classes to the label element. */
    labelClass?: string;
    /**
     * Specify which dataSource the label's mask-toggle-button will toggle.
     *
     * If no {@link MaskToggleButtonProperties.dataSource | dataSource} is specified,
     * the mask-toggle-button will toggle the dataSource(s) defined in the childNode's typeAttributes.
     */
    dataSource?: string;
    /** Disable the label's mask toggle button. */
    disableMaskToggle?: boolean;
    /** Hide the label's mask toggle button. */
    hideMaskToggle?: boolean;
    /** Set the label's `for` attribute. */
    for?: string;
}
