import { LitElement } from 'lit';
import '../../reusable/button';
declare const TextInput_base: (new (...args: any[]) => import("../../../common/mixins/form-input").FormMixinInterface) & typeof LitElement;
/**
* Text input.
* @fires on-input - Captures the input event and emits the selected value and original event details.`detail:{ origEvent: InputEvent, value: string }`
* @prop {string} pattern - RegEx pattern to validate.
* @prop {number} minLength - Minimum number of characters.
* @prop {number} maxLength - Maximum number of characters.
* @slot icon - Slot for contextual icon.
* @slot tooltip - Slot for tooltip.
* @attr {string} [value=''] - The value of the input.
* @attr {string} [name=''] - The name of the input, used for form submission.
* @attr {string} [invalidText=''] - The custom validation message when the input is invalid.
*
*/
export declare class TextInput extends TextInput_base {
static styles: import("lit").CSSResult;
/** Label text. */
accessor label: string;
/** Input type, limited to options that are "text like". */
accessor type: 'text' | 'password' | 'email' | 'search' | 'tel' | 'url';
/** Input size. "xs", "sm", "md", or "lg". */
accessor size: string;
/** Optional text beneath the input. */
accessor caption: string;
/** Input placeholder. */
accessor placeholder: string;
/** Makes the input required. */
accessor required: boolean;
/** Input disabled state. */
accessor disabled: boolean;
/** Input readonly state. */
accessor readonly: boolean;
/** RegEx pattern to validate. */
accessor pattern: string;
/** Maximum number of characters. */
accessor maxLength: number;
/** Minimum number of characters. */
accessor minLength: number;
/** Place icon on the right. */
accessor iconRight: boolean;
/** Visually hide the label. */
accessor hideLabel: boolean;
/** Customizable text strings. */
accessor textStrings: {
requiredText: string;
clearAll: string;
errorText: string;
showPassword: string;
hidePassword: string;
};
/** Control for native browser autocomplete. Use `on`, `off`, or a space-separated `token-list` describing autocomplete behavior.*/
accessor autoComplete: string;
/** Internal text strings.
* @internal
*/
accessor _textStrings: {
requiredText: string;
clearAll: string;
errorText: string;
showPassword: string;
hidePassword: string;
};
/**
* Queries the DOM element.
* @ignore
*/
accessor _inputEl: HTMLInputElement;
/**
* Evaluates if an icon is slotted.
* @ignore
*/
accessor iconSlotted: boolean;
/** Internal state for password visibility
* @internal
*/
private accessor passwordVisible;
/**
* Queries any slotted icons.
* @ignore
*/
accessor iconSlot: Array;
render(): import("lit-html").TemplateResult<1>;
private _handleInput;
private _handleClear;
private _emitValue;
private _validate;
updated(changedProps: any): void;
firstUpdated(): void;
private determineIfSlotted;
willUpdate(changedProps: any): void;
private _togglePasswordVisibility;
setValueAndNotify(val: string): void;
}
declare global {
interface HTMLElementTagNameMap {
'kyn-text-input': TextInput;
}
}
export {};
//# sourceMappingURL=textInput.d.ts.map