import type * as defs from "../FormDefinition"; /** * We re-define Text here to hide defs.StatusRef from the end user. * It is only for internal use, and adds no value in this context. * @public */ export type Text = string | defs.MarkdownRef; /** Properties common to all Elements, except the Header. */ export interface ElementBase { /** Indicates the name of the style that will be applied to the element. */ readonly styleName?: string; /** Indicates the type of the element. */ readonly type?: string; /** Indicates that the element is visible or not. */ readonly visible?: boolean; } /** Exposes the Element.enabled and Element.error properties. */ export interface EditableElement { /** Indicates that the element is enabled or not. */ readonly enabled?: boolean; /** Indicates the error for the element. */ readonly error?: Text; } /** Exposes the Element.autoActivate property. */ export interface ElementWithAutoActivate { /** True if this element should activate when shown, false otherwise. */ readonly autoActivate?: boolean; } /** Exposes the Element.current property. */ export interface ElementWithCurrent { /** Indicates the current item. */ readonly current?: string; } /** Exposes the Element.items property. */ export interface ElementWithItems { /** The items contained within the element. */ readonly items?: { [key: string]: ElementItemBase; }; } /** Exposes the Element.label property as `Text`. */ export interface ElementWithTextLabel { /** Indicates the label for the element. */ readonly label?: Text; } /** Exposes the Element.label property as `string`. */ export interface ElementWithStringLabel { /** Indicates the label for the element. */ readonly label?: string; } /** Exposes the Element.readOnly property. */ export interface ElementWithReadOnly { /** Indicates that the element is read only or not. */ readonly readOnly?: boolean; } /** Exposes the Element.require property. */ export interface ElementWithRequire { /** Instructs any validation that the element is required. */ readonly require?: boolean; } /** Exposes the Element.maxLength property. */ export interface ElementWithMaxLength { /** Indicates the maximum number of characters that can be entered in the field. */ readonly maxLength?: number; } /** Properties common to all Element Items. */ export interface ElementItemBase { /** Indicates the enabled state for the item. */ readonly enabled?: boolean; /** Indicates the label for the item. */ readonly label?: Text; /** Indicates the name of the style that will be applied to the item. */ readonly styleName?: string; /** Indicates the value for the item. */ readonly value?: T; /** Indicates the visible state for the item. */ readonly visible?: boolean; } /** Exposes the Item.checked property. */ export interface ElementItemWithChecked { /** Indicates the checked state for the item. */ readonly checked?: boolean; }