import { StartEnd } from "@fluentui/web-components";
import { BaseTextInput } from "./text-input.base";
import type { TextInputAppearance, TextInputControlSize } from "./text-input.options";
/**
* TextInput
* @summary A custom text input element based on Fluent UI's TextInput with custom styling and behavior.
*
* @example
* ```html
*
* 🔍
* ✖️
*
* ```
*
* @attr {string | undefined} appearance - Indicates the styled appearance of the element.
* @attr {string | undefined} control-size - Sets the size of the control.
* @attr {string | undefined} autocomplete - Indicates the element's autocomplete state.
* @attr {boolean | undefined} autofocus - Indicates that the element should get focus after the page finishes loading.
* @attr {string} current-value - The current value of the input.
* @attr {string | undefined} dirname - Sets the directionality of the element to be submitted with form data.
* @attr {boolean | undefined} disabled - Sets the element's disabled state.
* @attr {string | undefined} form - The id of a form to associate the element to.
* @attr {string | undefined} list - Allows associating a `` to the element by ID.
* @attr {number | undefined} maxlength - The maximum number of characters a user can enter.
* @attr {number | undefined} minlength - The minimum number of characters a user can enter.
* @attr {boolean | undefined} multiple - Indicates that a comma-separated list of email addresses can be entered. This attribute is only valid when `type="email"`.
* @attr {string | undefined} name - The name of the element. This element's value will be surfaced during form submission under the provided name.
* @attr {string | undefined} pattern - A regular expression that the value must match to pass validation.
* @attr {string | undefined} placeholder - Sets the placeholder value of the element, generally used to provide a hint to the user.
* @attr {boolean | undefined} readonly - When true, the control will be immutable by user interaction.
* @attr {boolean | undefined} required - The element's required attribute.
* @attr {number | undefined} size - Sets the width of the element to a specified number of characters.
* @attr {string | boolean | undefined} spellcheck - Controls whether or not to enable spell checking for the input field, or if the default spell checking configuration should be used.
* @attr {string | undefined} type - Allows setting a type or mode of text.
* @attr {string} value - The initial value of the input.
*
* @prop {string | undefined} appearance - Indicates the styled appearance of the element.
* @prop {string | undefined} controlSize - Sets the size of the control.
* @prop {string | undefined} autocomplete - Indicates the element's autocomplete state.
* @prop {boolean | undefined} autofocus - Indicates that the element should get focus after the page finishes loading.
* @prop {string} currentValue - The current value of the input.
* @prop {string | undefined} dirname - Sets the directionality of the element to be submitted with form data.
* @prop {boolean | undefined} disabled - Sets the element's disabled state.
* @prop {string | undefined} form - The id of a form to associate the element to.
* @prop {string | undefined} list - Allows associating a `` to the element by ID.
* @prop {number | undefined} maxlength - The maximum number of characters a user can enter.
* @prop {number | undefined} minlength - The minimum number of characters a user can enter.
* @prop {boolean | undefined} multiple - Indicates that a comma-separated list of email addresses can be entered. This attribute is only valid when `type="email"`.
* @prop {string | undefined} name - The name of the element. This element's value will be surfaced during form submission under the provided name.
* @prop {string | undefined} pattern - A regular expression that the value must match to pass validation.
* @prop {string | undefined} placeholder - Sets the placeholder value of the element, generally used to provide a hint to the user.
* @prop {boolean | undefined} readOnly - When true, the control will be immutable by user interaction.
* @prop {boolean | undefined} required - The element's required attribute.
* @prop {number | undefined} size - Sets the width of the element to a specified number of characters.
* @prop {string | boolean | undefined} spellcheck - Controls whether or not to enable spell checking for the input field, or if the default spell checking configuration should be used.
* @prop {string | undefined} type - Allows setting a type or mode of text.
* @prop {string} value - The initial value of the input.
*
* @slot start - Content which can be provided before the input.
* @slot end - Content which can be provided after the input.
* @slot - The default slot for button content.
*
* @csspart label - The internal `` element.
* @csspart root - The root container for the internal control.
* @csspart control - The internal ` ` control.
*
* @method checkValidity - Checks the validity of the element and returns the result.
* @method clickHandler - Clicks the inner control when the component is clicked.
* @method focusinHandler - Focuses the inner control when the component is focused.
* @method select - Selects all the text in the text field.
* @method setCustomValidity - Sets the custom validity message.
* @method reportValidity - Reports the validity of the element.
*
* @extends FluentTextInput
* @tagname fabric-text-input
* @public
*/
export declare class TextInput extends BaseTextInput {
/**
* Indicates the styled appearance of the element.
*
* @public
* @remarks
* HTML Attribute: `appearance`
*/
appearance?: TextInputAppearance;
/**
* Sets the size of the control.
*
* @public
* @remarks
* HTML Attribute: `control-size`
*/
controlSize?: TextInputControlSize;
}
/**
* @internal
* @privateRemarks
* Mark internal because exporting class and interface of the same name
* confuses API documenter.
* TODO: https://github.com/microsoft/rushstack/issues/1308
*/
export interface TextInput extends StartEnd {
}
//# sourceMappingURL=text-input.d.ts.map