import { type Dispatch, type SetStateAction } from "react";
import { type IUiListboxInteractiveItem } from "../@ui/UiListbox/types.js";
import { type CatalogItemListboxItem, type ICatalogItemPickerListItemData } from "./listboxItemBuilders.js";
import { type CatalogItemPickerSelectionMode, type CatalogItemPickerType, type ICatalogItemPickerItem } from "./types.js";
interface IUseCatalogItemPickerHandlersParams<TAttributePayload, TMetricPayload> {
    selectionMode: CatalogItemPickerSelectionMode;
    selectedIds: Set<string>;
    setSelectedIds: Dispatch<SetStateAction<Set<string>>>;
    listboxItems: CatalogItemListboxItem[];
    onClose: () => void;
    onAdd?: (items: Array<TAttributePayload | TMetricPayload>) => void;
    onSelect?: (item: TAttributePayload | TMetricPayload) => void;
    handleItemSelect: (id: string) => void;
    setActiveType: (type: CatalogItemPickerType) => void;
    resetSelection: () => void;
}
interface ICatalogItemPickerHandlersResult<_TAttributePayload, _TMetricPayload> {
    itemById: Map<string, ICatalogItemPickerItem>;
    handleListboxSelect: (item: IUiListboxInteractiveItem<ICatalogItemPickerListItemData>) => void;
    handleAdd: () => void;
    handleTabChange: (type: CatalogItemPickerType) => void;
}
/**
 * Hook to manage catalog item picker event handlers.
 *
 * @internal
 */
export declare function useCatalogItemPickerHandlers<TAttributePayload = unknown, TMetricPayload = unknown>({ selectionMode, selectedIds, setSelectedIds, listboxItems, onClose, onAdd, onSelect, handleItemSelect, setActiveType, resetSelection }: IUseCatalogItemPickerHandlersParams<TAttributePayload, TMetricPayload>): ICatalogItemPickerHandlersResult<TAttributePayload, TMetricPayload>;
export {};
//# sourceMappingURL=useCatalogItemPickerHandlers.d.ts.map