import { type KeyboardEvent, type ReactNode } from "react";
import type { IconType } from "../@ui/@types/icon.js";
import { type IUiListboxInteractiveItem } from "../@ui/UiListbox/types.js";
import { type CatalogItemListboxItem, type ICatalogItemPickerListItemData } from "./listboxItemBuilders.js";
import { type CatalogItemPickerType } from "./types.js";
/**
 * Returns icon type for a catalog item type.
 */
export declare function getTypeIcon(type: CatalogItemPickerType): {
    icon: IconType;
};
interface ICatalogItemPickerHeaderProps {
    title: string;
    onBack?: () => void;
    onClose: () => void;
    backAriaLabel: string;
    closeAriaLabel: string;
}
export declare function CatalogItemPickerHeader({ title, onBack, onClose, backAriaLabel, closeAriaLabel }: ICatalogItemPickerHeaderProps): ReactNode;
interface ICatalogItemPickerSearchProps {
    variant: "mvf" | "addFilter";
    value: string;
    onChange: (value: string | number) => void;
    onEscKeyPress: (event: KeyboardEvent) => void;
    placeholder: string;
    ariaLabel: string;
}
export declare function CatalogItemPickerSearch({ variant, value, onChange, onEscKeyPress, placeholder, ariaLabel }: ICatalogItemPickerSearchProps): ReactNode;
interface ICatalogItemPickerTabsProps {
    variant: "mvf" | "addFilter";
    itemTypes: CatalogItemPickerType[];
    effectiveType: CatalogItemPickerType;
    getAriaLabel: (type: CatalogItemPickerType) => string;
    onChange: (type: CatalogItemPickerType) => void;
}
export declare function CatalogItemPickerTabs({ variant, itemTypes, effectiveType, getAriaLabel, onChange }: ICatalogItemPickerTabsProps): ReactNode;
interface ICatalogItemPickerListProps {
    variant: "mvf" | "addFilter";
    listboxItems: CatalogItemListboxItem[];
    isMultiSelect: boolean;
    maxListHeight?: number;
    listboxId: string;
    ariaLabel: string;
    shouldShowEmptyStateMessage: boolean;
    emptyMessage: string;
    onSelect: (item: IUiListboxInteractiveItem<ICatalogItemPickerListItemData>) => void;
}
export declare function CatalogItemPickerList({ variant, listboxItems, isMultiSelect, maxListHeight, listboxId, ariaLabel, shouldShowEmptyStateMessage, emptyMessage, onSelect }: ICatalogItemPickerListProps): ReactNode;
interface ICatalogItemPickerFooterProps {
    variant: "mvf" | "addFilter";
    isAddDisabled: boolean;
    onClose: () => void;
    onAdd: () => void;
    cancelLabel: string;
    addLabel: string;
    addTooltip?: string;
}
export declare function CatalogItemPickerFooter({ variant, isAddDisabled, onClose, onAdd, cancelLabel, addLabel, addTooltip }: ICatalogItemPickerFooterProps): ReactNode;
export {};
//# sourceMappingURL=CatalogItemPickerParts.d.ts.map