import { InputHTMLAttributes, ReactNode, Ref } from 'react'; import { FieldError, FieldPath, FieldValues, UseFormRegister } from 'react-hook-form'; import { ComponentColor, IComponentBaseProps, Size } from '../types'; export declare const SELECT_S = "select-search"; export declare const SELECT_S_WRAPPER = "relative w-full"; export declare const SELECT_S_DROPDOWN = "select-options "; export declare const SELECT_S_ITEM = "option "; export declare const SELECT_S_ITEM_ACTIVE = "active"; export declare const SELECT_S_ITEM_HOVER = "hover"; export declare const COLOR_MAP: { primary: string; secondary: string; error: string; info: string; success: string; warning: string; accent: string; ghost: string; }; export declare const SIZE_MAP: Record; export declare const SELECT_S_MAP: { primary: string; secondary: string; error: string; info: string; success: string; warning: string; accent: string; ghost: string; xs: string; sm: string; md: string; lg: string; xl: string; }; export interface BaseSelectSearchOption { value: string | number; label: string; [key: string]: unknown; } export interface SelectSearchOption extends BaseSelectSearchOption { subtitle?: string; icon?: ReactNode; disabled?: boolean; [key: string]: unknown; } export interface SelectSearchProps extends Omit, "size" | "color" | "onChange" | "value" | "defaultValue">, IComponentBaseProps { ref?: Ref; borderOffset?: boolean; size?: Size; placeholder?: string; name: FieldPath; id?: string; color?: Exclude; register?: UseFormRegister; label?: ReactNode; classes?: { input?: string; label?: string; labelText?: string; helper?: string; helperText?: string; dropdown?: string; item?: string; }; error?: FieldError; helper?: string; options?: T[]; onSearch?: (query: string) => Promise | T[]; onChange?: (option: T | null) => void; value?: T | null; defaultValue?: T | null; debounceMs?: number; loading?: boolean; noOptionsMessage?: string; loadingMessage?: string; renderOption?: (option: T) => ReactNode; getOptionValue?: (option: T) => unknown; getOptionLabel?: (option: T) => string; getOptionDisabled?: (option: T) => boolean; searchIcon?: ReactNode; clearable?: boolean; searchOnEnter?: boolean; /** Gap in pixels between the input and the dropdown, whether it opens above or below. Defaults to 4. */ dropdownGap?: number; }