import { ActiveDescendantOptions } from "makeup-active-descendant";
export type { FloatingDropdownHookReturn, FloatingDropdownHookArgs, FloatingDropdownHookOptions } from "./floating-ui";
export { useFloatingDropdown } from "./floating-ui";
type ElementId = string;
export type ExpanderHookArgs<T extends HTMLElement> = {
    ref: React.MutableRefObject<T> | null;
    expanded?: boolean;
    options: {
        contentSelector: string;
        hostSelector: string;
        expandedClass?: string;
        autoCollapse?: boolean;
        expandOnFocus?: boolean;
        expandOnClick?: boolean;
        collapseOnFocusOut?: boolean;
        collapseOnMouseOut?: boolean;
        collapseOnClickOut?: boolean;
        collapseOnHostFocus?: boolean;
        expandOnHover?: boolean;
        focusManagement?: "content" | "focusable" | "interactive" | ElementId;
        simulateSpacebarClick?: boolean;
        alwaysDoFocusManagement?: boolean;
        ariaControls?: boolean;
    };
    onExpand?: () => void;
    onCollapse?: () => void;
};
export type ExpanderHookReturn = {
    isExpanded: boolean;
    expand(): void;
    collapse(): void;
};
export declare function useExpander<T extends HTMLElement>({ ref, expanded, options, onExpand, onCollapse }: ExpanderHookArgs<T>, deps?: React.DependencyList): ExpanderHookReturn;
export type ActiveDescendantChangeHandler = (event: ActiveDescendantChangeEvent, data: {
    toIndex: number;
}) => void;
export type ActiveDescendantHookArgs = {
    ref: React.MutableRefObject<HTMLElement>;
    focusElementRef?: React.MutableRefObject<HTMLElement>;
    itemContainerRef?: React.MutableRefObject<HTMLElement>;
    disabled?: boolean;
    onChange?: ActiveDescendantChangeHandler;
    options: ActiveDescendantOptions;
};
export type ActiveDescendantHookReturn = {
    setIndex: (index: number) => void;
    getIndex: () => number;
};
export interface ActiveDescendantChangeEvent extends Event {
    detail: {
        toIndex: number;
    };
}
export declare function useActiveDescendant({ ref, focusElementRef, itemContainerRef, onChange, disabled, options, }: ActiveDescendantHookArgs): ActiveDescendantHookReturn;
//# sourceMappingURL=dropdown.d.ts.map