import { CombinedRefs as CombinedRefs$1, DropdownItemGroupProps } from "../Dropdown/Dropdown.types.js";
import { InputTextProps } from "../InputText/InputText.types.js";
import { DropdownMenuContentProps } from "@radix-ui/react-dropdown-menu";
import { AllHTMLAttributes, ChangeEvent, ForwardedRef, ReactNode } from "react";

//#region src/components/Autocomplete/Autocomplete.types.d.ts
type CombinedRefs = {
  container: HTMLDivElement | null;
  dropdown: CombinedRefs$1 | null;
  input: HTMLInputElement | null;
};
interface AutocompleteProps extends Omit<InputTextProps, 'onBlur' | 'onSelect'> {
  autoFocus?: boolean;
  children?: ReactNode;
  defaultValue?: number | string;
  description?: ReactNode;
  disabled?: boolean;
  dropdown?: Partial<{
    className?: string;
    ref?: ForwardedRef<HTMLDivElement | null>;
  } & Omit<DropdownMenuContentProps, 'asChild'>>;
  error?: Error | ReactNode;
  fullWidth?: boolean;
  id?: string;
  label?: ReactNode;
  labelElement?: keyof HTMLElementTagNameMap;
  name?: string;
  open?: boolean;
  placeholder?: string;
  prefix?: ReactNode;
  readOnly?: boolean;
  required?: boolean;
  success?: ReactNode;
  suffix?: ReactNode;
  value?: number | string;
  onBlur?: () => void;
  onChange?: (event: ChangeEvent<HTMLInputElement> | null, newValue: string) => void;
  onClose?: () => void;
  onInputChange?: (event: ChangeEvent<HTMLInputElement>, newValue: string) => void;
  onOpen?: () => void;
}
interface AutocompleteLoadingProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'label'> {
  children?: ReactNode;
  icon?: boolean | ReactNode;
  label?: ReactNode;
  spin?: boolean;
}
interface AutocompleteEmptyProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'label'> {
  children?: ReactNode;
  label?: ReactNode;
  labelElement?: keyof HTMLElementTagNameMap;
}
type AutocompleteItemGroupProps = DropdownItemGroupProps;
//#endregion
export { AutocompleteEmptyProps, AutocompleteItemGroupProps, AutocompleteLoadingProps, AutocompleteProps, CombinedRefs };
//# sourceMappingURL=Autocomplete.types.d.ts.map