import { Placement } from "@floating-ui/react";
import { type FloatingListboxPlacementStrategy, type FloatingListboxSizeResolver } from "@ryuzaki13/react-foundation-lib/hooks";
import { PickerTriggerMode } from "./createPickerTriggerPolicy";
interface UsePickerFloatingListboxParams<T> {
    options: readonly T[];
    selectedIndex: number;
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    getOptionDisabled?: (option: T) => boolean;
    onSelect?: (option: T) => void;
    disabled?: boolean;
    placement?: Placement;
    placementStrategy?: FloatingListboxPlacementStrategy;
    closeOnSelect?: boolean;
    focusFloatingOnOpen?: boolean;
    allowOpenWithoutOptions?: boolean;
    restoreFocusOnClose?: boolean;
    triggerMode?: PickerTriggerMode;
    resolveFloatingSize?: FloatingListboxSizeResolver;
}
/**
 * Единая точка входа для popup/listbox поведения во всех picker-компонентах.
 */
export declare function usePickerFloatingListbox<T>(params: UsePickerFloatingListboxParams<T>): {
    open: boolean;
    setOpen: (open: boolean) => void;
    activeIndex: number;
    refs: {
        reference: import("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>;
    context: {
        update: () => void;
        x: number;
        y: number;
        placement: Placement;
        strategy: import("@floating-ui/utils").Strategy;
        middlewareData: import("@floating-ui/core").MiddlewareData;
        isPositioned: boolean;
        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>;
    };
    floatingStyles: import("react").CSSProperties;
    getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
    setReference: ((node: import("@floating-ui/react-dom").ReferenceType | null) => void) & ((node: import("@floating-ui/react").ReferenceType | null) => void);
    setFloating: ((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void);
    setOptionRef: (index: number, node: HTMLElement | null) => void;
    close: () => void;
    openList: () => void;
    openWithIndex: (nextIndex: number) => void;
    toggleOpen: () => void;
    selectOption: (option: T) => void;
    selectActiveOption: () => void;
    handleReferenceKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;
    handleFloatingKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;
    getOptionId: (listId: string, index: number) => string;
    getActiveOptionId: (listId: string) => string | undefined;
};
export {};
//# sourceMappingURL=usePickerFloatingListbox.d.ts.map