import type React from "react";
import type { ActionConfig, AutocompleteRebuiltProps, OptionLike, RenderItem } from "./Autocomplete.types";
export declare function useAutocomplete<Value extends OptionLike, Multiple extends boolean = false, SectionExtra extends object = Record<string, unknown>, ActionExtra extends object = Record<string, unknown>>(props: AutocompleteRebuiltProps<Value, Multiple, SectionExtra, ActionExtra>, inputRef: React.RefObject<HTMLInputElement | HTMLTextAreaElement | null>): {
    renderable: RenderItem<Value, SectionExtra, ActionExtra>[];
    optionCount: number;
    persistentsHeaders: import("./Autocomplete.types").MenuHeader<ActionExtra>[];
    persistentsFooters: import("./Autocomplete.types").MenuFooter<ActionExtra>[];
    headerInteractiveCount: number;
    middleNavigableCount: number;
    getOptionLabel: (opt: Value) => string;
    isOptionSelected: (opt: Value) => boolean;
    refs: {
        reference: React.MutableRefObject<import("@floating-ui/react-dom").ReferenceType | null>;
        floating: React.MutableRefObject<HTMLElement | null>;
        setReference: (node: import("@floating-ui/react-dom").ReferenceType | null) => void;
        setFloating: (node: HTMLElement | null) => void;
    } & import("@floating-ui/react").ExtendedRefs<import("@floating-ui/react").ReferenceType>;
    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<import("@floating-ui/react").ContextData>;
        nodeId: string | undefined;
        floatingId: string | undefined;
        refs: import("@floating-ui/react").ExtendedRefs<import("@floating-ui/react").ReferenceType>;
        elements: import("@floating-ui/react").ExtendedElements<import("@floating-ui/react").ReferenceType>;
    };
    getReferenceProps: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;
    getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
    getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "selected" | "active"> & {
        active?: boolean;
        selected?: boolean;
    }) => Record<string, unknown>;
    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<HTMLInputElement | HTMLTextAreaElement>) => void;
    onInputFocus: (event: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
    onInputKeyDown: (event: React.KeyboardEvent) => void;
    setReferenceElement: (el: HTMLElement | null) => void;
};
