import { CustomElement } from "../../internal/custom-element.js"; import { Constructor } from "../../internal/utils/dedupe-mixin.js"; import { FormAssociated } from "../../internal/behaviors/form-associated.js"; import { PropertyValues, TemplateResult } from "lit"; type InputAlignment = (typeof InputAlignment)[keyof typeof InputAlignment]; declare const InputAlignment: { readonly START: "start"; readonly CENTER: "center"; readonly END: "end"; }; type InputSize = (typeof InputSize)[keyof typeof InputSize]; declare const InputSize: { readonly SM: "sm"; readonly MD: "md"; readonly LG: "lg"; }; declare const InputBase_base: Constructor & typeof CustomElement; /** * @summary Base element for components with input functionality. * * @slot prefix - Content rendered before the input value (typically an icon). * @slot suffix - Content rendered after the input value (typically an icon or action button). Built-in controls — clear button, password reveal, loading spinner — render into this slot alongside any consumer-provided content. * * @csspart input - The inner `` element. * @csspart unit - The unit label rendered after the value. * * @event select - Fired when `select()` is called to programmatically select the value. */ declare class InputBase extends InputBase_base { #private; static readonly styles: import("lit").CSSResult[]; static shadowRootOptions: ShadowRootInit; protected inputActionSelector?: string; protected measureTarget: HTMLSpanElement; /** @internal */ protected inputElement: HTMLInputElement; /** * Indicates the element's autocomplete state. * @see The {@link https://developer.mozilla.org/docs/Web/HTML/Attributes/autocomplete | `autocomplete`} attribute */ autocomplete: HTMLInputElement['autocomplete']; /** * Indicates the horizontal alignment of the input's content. */ alignment: InputAlignment; /** * Indicates the directionality of the element's text content. * @see The {@link https://developer.mozilla.org/docs/Web/HTML/Attributes/dirname | `dirname`} attribute */ dirname?: string | null; /** * Indicates whether the element's built-in controls (e.g. increment/decrement buttons) should be hidden. */ hideControls: boolean; /** * Indicates the type of virtual keyboard to display when the element receives focus on a touch-enabled device. * @see The {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#inputmode | `inputmode`} attribute */ inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url' | null; /** * Marks the input as invalid for styling purposes. Setting this does not affect * the form's built-in validity state; use `setCustomValidity()` on the inner * input or rely on `minLength`/`maxLength`/`pattern` for native validation. */ invalid: boolean; /** * The placeholder text to display when the input is empty. */ placeholder: string; /** * Indicates the size of the input. */ size: InputSize; /** * The unit label to display after the input value (e.g. "kg", "cm", etc.). */ unit?: string | null; constructor(); /** * Selects all of the current value in the inner input and fires a `select` event. */ select(): void; /** * Selects a range of characters in the inner input. The optional `direction` * indicates whether the selection is considered to extend forward, backward, or * neither, which affects shift-arrow extension behavior. * @see The {@link https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setSelectionRange | `setSelectionRange`} method */ setSelectionRange(start: number, end: number, direction?: 'forward' | 'backward' | 'none'): void; connectedCallback(): void; disconnectedCallback(): void; click(): void; toFormValue(): string; protected firstUpdated(props: PropertyValues): void; protected updated(props: PropertyValues): void; protected render(): TemplateResult; protected renderSlot(name: 'prefix' | 'suffix', defaultContent?: TemplateResult | string): TemplateResult; protected handleInput(event: InputEvent & { target: HTMLInputElement; }): void; protected updateInputWidth(): void; } export { InputAlignment, InputBase, InputSize };