import { type ComponentInterface } from "../../stencil-public-runtime"; export type Size = "medium" | "large"; export type InputType = "text" | "password" | "email" | "number" | "tel" | "url" | (string & {}); export type InputMode = "none" | "text" | "decimal" | "numeric" | "tel" | "search" | "email" | "url" | (string & {}); declare const ScoutInput_base: abstract new (...args: any[]) => { validity?: string; scoutInputChange: import("@stencil/core").EventEmitter<{ value: string; element: HTMLElement; }>; scoutBlur: import("@stencil/core").EventEmitter; scoutValidate: import("@stencil/core").EventEmitter<{ value: string; element: HTMLElement; }>; _scoutValidityChanged: import("@stencil/core").EventEmitter<{ element: HTMLElement; }>; _scoutInvalid: import("@stencil/core").EventEmitter; _scoutFieldId: import("@stencil/core").EventEmitter; ariaId: string; "__#5@#inputElement": HTMLButtonElement | HTMLInputElement | HTMLOutputElement | HTMLSelectElement | HTMLTextAreaElement; componentWillLoad(): void; componentDidLoad(): void; onInput(): void; onBlur(): void; onInvalid(): void; emitValidityEvent(value?: string): void; runValidation(): void; setInputRef(el: HTMLButtonElement | HTMLInputElement | HTMLOutputElement | HTMLSelectElement | HTMLTextAreaElement | undefined): void; }; /** * The input component is a basic text input field that can be used to capture * user input. It supports various types and input modes for different use * cases. When used in a form, make sure to wrap it in a Field component to * display a label, help text, and error messages. */ export declare class ScoutInput extends ScoutInput_base implements ComponentInterface { /** * Size of the input element. Large fields are typically used for prominent * inputs, such as a top search field on a page, while medium fields are used * for regular form inputs. */ size: Size; /** * Type of input element. If you need a number input, read the accessibility * section of this MDN article first: * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/number#accessibility */ type: InputType; /** * Input mode hints for devices with dynamic keyboards. */ inputmode?: InputMode; /** * Regex pattern for input validation. */ pattern?: string; /** * Value of the input element, in case you want to control it yourself. */ value: string; /** * Initial value of the input element for uncontrolled usage. Unlike `value`, * this only sets the value on first render and does not keep the input in * sync with the prop afterwards. */ defaultValue?: string; name: string; /** * Whether the input is disabled. Disabled inputs are not editable, excluded * from tab order and are not validated. */ disabled: boolean; /** * Placeholder text should rarely be used as it poses a lot of accessibility * issues. */ placeholder?: string; /** * Hint for the browser's autocomplete feature. Maps directly to the native * `autocomplete` attribute. Use `"off"` to disable autocomplete, or any * autofill detail token such as `"name"`, `"email"`, `"current-password"`, * etc. See MDN for the full list: * https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete */ autocomplete?: string; /** * Raw SVG string for an icon to display at the leading edge of the input. * Import with the `?raw` suffix, e.g. `import searchIcon from * "@tabler/icons/outline/search.svg?raw"`. */ icon?: string; /** * When true, a clear button is shown at the trailing edge whenever the * input has a value. Clicking it resets the input to empty and emits * scoutInputChange. */ clearable: boolean; private _hasValue; private nativeInput; componentWillLoad(): void; componentDidLoad(): void; watchValue(newVal: string): void; onInput(): void; clearValue(): void; render(): any; } export {};