import { SlotMarker } from "../utils/types/Slots.js";
import { ForwardRefComponent } from "../utils/polymorphic.js";
import { ButtonProps } from "../Button/types.js";
import AutocompleteMenu, { AutocompleteMenuProps } from "./AutocompleteMenu.js";
import AutocompleteOverlay, { AutocompleteOverlayProps } from "./AutocompleteOverlay.js";
import { TextInputProps } from "../TextInput/TextInput.js";
import { AutocompleteInputProps } from "./AutocompleteInput.js";
import React from "react";

//#region src/Autocomplete/Autocomplete.d.ts
declare const _default: React.FC<React.PropsWithChildren<{
  id?: string;
}>> & SlotMarker & {
  __SLOT__: symbol;
  Context: React.Context<{
    activeDescendantRef: React.MutableRefObject<HTMLElement | null>;
    id: string;
    inputRef: React.MutableRefObject<HTMLInputElement | null>;
    scrollContainerRef: React.MutableRefObject<HTMLElement | null>;
    selectedItemLength: number;
    setAutocompleteSuggestion: (value: string) => void;
    setInputValue: (value: string) => void;
    setIsMenuDirectlyActivated: (value: boolean) => void;
    setSelectedItemLength: (value: number) => void;
    setShowMenu: (value: boolean) => void;
    showMenu: boolean;
  } | null>;
  Input: ForwardRefComponent<ForwardRefComponent<"input", TextInputProps> & {
    __SLOT__: symbol;
    Action: React.ForwardRefExoticComponent<Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "aria-label" | "size" | "tooltipDirection"> & {
      children?: React.ReactNode;
      "aria-label"?: string;
      tooltipDirection?: "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw";
      icon?: React.FunctionComponent<React.PropsWithChildren<import("@primer/octicons-react").IconProps>>;
      variant?: ButtonProps["variant"];
    } & React.RefAttributes<HTMLButtonElement>>;
  }, {
    as?: React.ComponentType<React.PropsWithChildren<any>>;
    openOnFocus?: boolean;
  }>;
  Menu: typeof AutocompleteMenu;
  Overlay: typeof AutocompleteOverlay;
};
//#endregion
export { type AutocompleteInputProps, type AutocompleteMenuProps, type AutocompleteOverlayProps, _default as default };