import type { Slot } from 'vue'; import type { AvInteractiveProps } from '../../../../types/interfaces.types.js'; export interface AvInputProps extends AvInteractiveProps { /** * ID of the input element * @default `input-${crypto.randomUUID()}` */ id?: string; /** * ID of the description element */ descriptionId?: string; /** * Hint text displayed below the label */ hint?: string; /** * Validation state - valid * @default false */ isValid?: boolean; /** * Render as textarea instead of input * @default false */ isTextarea?: boolean; /** * Whether the label is visible * @default true */ labelVisible?: boolean; /** * Label text * @default '' */ label?: string; /** * CSS class for the label * @default 'b2-light' */ labelClass?: string; /** * Model value for v-model * @default '' */ modelValue?: string | number | null; /** * Placeholder text */ placeholder?: string; /** * Input type (text, email, password, etc.) * @default 'text' */ type?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'datetime-local' | 'month' | 'time' | 'week' | 'color' | 'file' | 'hidden' | 'range'; /** * Minimum date for date inputs */ minDate?: Date; /** * Max date for date inputs */ maxDate?: Date; /** * Whether the input is required * @default false */ required?: boolean; /** * Maximum length of input */ maxlength?: number; /** * Minimum length of input */ minlength?: number; /** * Error message to display */ errorMessage?: string | string[]; /** * Valid message to display */ validMessage?: string | string[]; /** * Message to display when maxlength is exceeded */ maxlengthExceededMessage?: string; /** * Prefix icon name (optional) */ prefixIcon?: string; /** * Minimum height of the textarea (if isTextarea is true) */ textareaMinHeight?: string; /** * Width of the input */ width?: string; /** * Removes radii from the input border. * @default false */ noRadius?: boolean; /** * Custom date format string for displayed date * If invalid or not provided, defaults to standard format based on input type */ formatDateStr?: string; } /** * Slots available for the component. * * @slot requiredTip - Slot for custom required tip content. */ type __VLS_Slots = { /** * Slot for custom required tip content */ requiredTip?: Slot; /** * Slot for max length caption to display the current length / max length */ maxLengthCaption?: Slot<{ currentValue?: string | number | null; maxlength?: number; }>; /** * Slot for suffix content inside the input control (e.g. action buttons) */ suffix?: Slot; }; declare const __VLS_component: import("vue").DefineComponent void | undefined; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { "update:modelValue": (value: string | number | null) => any; }, string, import("vue").PublicProps, Readonly & Readonly<{ "onUpdate:modelValue"?: ((value: string | number | null) => any) | undefined; }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; declare const _default: __VLS_WithSlots; export default _default; type __VLS_WithSlots = T & { new (): { $slots: S; }; };