import type React from "react"; import type { ActionConfig, ActionOrigin, AutocompleteRebuiltProps, MenuAction, MenuSection, OptionLike } from "./Autocomplete.types"; export type RenderItem, A extends object = Record> = { kind: "option"; value: T; } | { kind: "action"; action: MenuAction; origin?: ActionOrigin; } | { kind: "section"; section: MenuSection; }; export declare function useAutocomplete, ActionExtra extends object = Record>(props: AutocompleteRebuiltProps, inputRef: React.RefObject): { renderable: RenderItem[]; optionCount: number; persistentsHeaders: import("./Autocomplete.types").MenuHeader[]; persistentsFooters: import("./Autocomplete.types").MenuFooter[]; headerInteractiveCount: number; middleNavigableCount: number; getOptionLabel: (opt: Value) => string; isOptionSelected: (opt: Value) => boolean; refs: { reference: React.MutableRefObject; floating: React.MutableRefObject; setReference: (node: import("@floating-ui/react-dom").ReferenceType | null) => void; setFloating: (node: HTMLElement | null) => void; } & import("@floating-ui/react").ExtendedRefs; floatingStyles: React.CSSProperties; context: { x: number; y: number; placement: import("@floating-ui/utils").Placement; strategy: import("@floating-ui/utils").Strategy; middlewareData: import("@floating-ui/core").MiddlewareData; isPositioned: boolean; update: () => void; floatingStyles: React.CSSProperties; open: boolean; onOpenChange: (open: boolean, event?: Event, reason?: import("@floating-ui/react").OpenChangeReason) => void; events: import("@floating-ui/react").FloatingEvents; dataRef: React.MutableRefObject; nodeId: string | undefined; floatingId: string | undefined; refs: import("@floating-ui/react").ExtendedRefs; elements: import("@floating-ui/react").ExtendedElements; }; getReferenceProps: (userProps?: React.HTMLProps) => Record; getFloatingProps: (userProps?: React.HTMLProps) => Record; getItemProps: (userProps?: Omit, "selected" | "active"> & { active?: boolean; selected?: boolean; }) => Record; open: boolean; setOpen: (open: boolean) => void; activeIndex: number | null; setActiveIndex: (index: number | null) => void; listRef: React.RefObject<(HTMLElement | null)[]>; onSelection: (option: Value) => void; onAction: (action: ActionConfig) => void; onInteractionPointerDown: (e: React.PointerEvent) => void; removeSelection: (option: Value) => void; clearAll: () => void; onInputChangeFromUser: (val: string) => void; onInputBlur: (event: React.FocusEvent) => void; onInputFocus: (event: React.FocusEvent) => void; onInputKeyDown: (event: React.KeyboardEvent) => void; setReferenceElement: (el: HTMLElement | null) => void; };