import { InputSize, InputVariant } from '../../shared/types';
import * as InputRules from './rules';
export type { InputRuleName } from './rules';
declare const LuksoInput_base: typeof import('lit').LitElement;
/**
 * A styled text input with optional label, description, error, unit suffix, and right icon.
 * All events pass `{ value, event }` in their detail object.
 *
 * @prop {InputVariant} variant - Visual variant. `'default'` uses `bg-neutral-100`; `'subtle'` uses `bg-neutral-97` for use on slightly darker surfaces.
 */
export declare class LuksoInput extends LuksoInput_base {
    value?: string;
    name: string | undefined;
    type: string;
    placeholder: string | undefined;
    label: string | undefined;
    autocomplete: string;
    id: string | undefined;
    ref: string | undefined;
    accept: string | undefined;
    description: string | undefined;
    error: string | undefined;
    unit: string | undefined;
    customClass: string | undefined;
    isFullWidth: boolean;
    isReadonly: boolean;
    isDisabled: boolean;
    autofocus: boolean;
    max: number | undefined;
    min: number | undefined;
    borderless: boolean;
    size: InputSize;
    rightIcon: string | undefined;
    isRightIconClickable: boolean;
    /** Controls whether the unit shows a pointer cursor and emits on-unit-click. Without this, the unit is purely decorative. */
    isUnitClickable: boolean;
    keepFocusOnEscape: boolean;
    rules: InputRules.InputRuleName[];
    variant: InputVariant;
    private hasFocus;
    private hasHighlight;
    private inputStyles;
    connectedCallback(): void;
    inputTemplate(styles: string): import('lit-html').TemplateResult<1>;
    unitTemplate(styles: string): import('lit-html').TemplateResult<1>;
    rightIconTemplate(styles: string): import('lit-html').TemplateResult<1>;
    private handleFocus;
    private handleBlur;
    private handleChange;
    private handleInput;
    private handleKeyUp;
    private get activeRules();
    private handleKeyDown;
    private handleKeyPress;
    private handleMouseOver;
    private handleMouseOut;
    private handleUnitClick;
    private handleInputClick;
    private handleRightIconClick;
    render(): import('lit-html').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'lukso-input': LuksoInput;
    }
}
//# sourceMappingURL=index.d.ts.map