import type { IElementRef, OnInit } from '@melodicdev/core';
import type { Size } from '../../../types/index.js';
import type { InputType } from './input.types.js';
/**
 * ml-input - Text input component with label, hint, and error states
 *
 * @example
 * ```html
 * <ml-input label="Email" type="email" placeholder="Enter email"></ml-input>
 * <ml-input label="Password" type="password" required></ml-input>
 * <ml-input label="Name" hint="Enter your full name"></ml-input>
 * <ml-input label="Username" error="Username is taken"></ml-input>
 * ```
 *
 * @slot prefix - Content before the input (icon, text)
 * @slot suffix - Content after the input (icon, button)
 *
 * @fires ml:input - Emitted on input
 * @fires ml:change - Emitted on change (blur)
 * @fires ml:focus - Emitted on focus
 * @fires ml:blur - Emitted on blur
 */
export declare class InputComponent implements IElementRef, OnInit {
    elementRef: HTMLElement;
    /** Input type */
    type: InputType;
    /** Current value */
    value: string;
    /** Placeholder text */
    placeholder: string;
    /** Label text */
    label: string;
    /** Hint text shown below input */
    hint: string;
    /** Error message (shows error state when set) */
    error: string;
    /** Input size */
    size: Size;
    /** Disable the input */
    disabled: boolean;
    /** Make input readonly */
    readonly: boolean;
    /** Mark as required */
    required: boolean;
    /** Autocomplete attribute */
    autocomplete: string;
    /** Internal focus state */
    focused: boolean;
    onInit(): void;
    handleInput: (event: Event) => void;
    handleChange: (event: Event) => void;
    handleFocus: () => void;
    handleBlur: () => void;
}
//# sourceMappingURL=input.component.d.ts.map