import React from "react"; import type { InputProps } from "./Input"; export interface AutocompleteOption { label: string; value: string; description?: string | number; icon?: string; } export interface AutocompleteInputProps extends Omit { options: T[]; value?: string | string[]; /** * Valor de texto del input (controlado) * Puede ser un ChangeEventHandler (de register) o una función que recibe string (API personalizada) */ onChange?: React.ChangeEventHandler | ((value: string | string[]) => void); /** * Callback al seleccionar una opción. Devuelve el item completo (T) y el valor mapeado (K) */ onSelectOption?: (option: T, value: K) => void; noResultsText?: string; /** * Obtiene el label que se muestra para cada opción. Por defecto usa la propiedad "label". */ getOptionLabel?: (item: T) => string; /** * Obtiene el valor que se devuelve al seleccionar una opción. Por defecto usa la propiedad "value". */ getOptionValue?: (item: T) => K; /** * Obtiene la descripción opcional para cada opción. Por defecto usa la propiedad "description". */ getOptionDescription?: (item: T) => string | number | undefined; /** * Renderizado personalizado de cada opción. Si se define, se ignora el render por defecto. */ renderOption?: (item: T) => React.ReactNode; /** * Si es true, el input será de solo lectura. No se podrá modificar ni desplegar las opciones. * Por defecto es false. */ readOnly?: boolean; /** * Si es true, permite seleccionar múltiples opciones usando Checkboxes. * El valor será un array con los valores (K) de las opciones seleccionadas. */ multiple?: boolean; } export declare const AutocompleteInput: (props: AutocompleteInputProps & { ref?: React.ForwardedRef; }) => React.ReactElement; //# sourceMappingURL=AutocompleteInput.d.ts.map