import { type IUiListboxItem } from "../@ui/UiListbox/types.js";
import { type ICatalogItemPickerItem } from "./types.js";
export interface ICatalogItemPickerListItemData<TPayload = unknown> {
    item: ICatalogItemPickerItem<TPayload>;
    isSelected: boolean;
}
export type CatalogItemListboxItem = IUiListboxItem<ICatalogItemPickerListItemData>;
export declare function buildSectionHeader(id: string, title: string, variant: "mvf" | "addFilter"): CatalogItemListboxItem;
export declare function buildDivider(variant: "mvf" | "addFilter"): CatalogItemListboxItem;
export declare function buildLoadingRow(variant: "mvf" | "addFilter"): CatalogItemListboxItem;
export interface IBuildMetricListboxItemsParams {
    metricInsightItems: ICatalogItemPickerItem[];
    groupedMetricCatalogItems: Array<{
        title: string;
        items: ICatalogItemPickerItem[];
    }>;
    fromVisualizationTitle: string | null;
    variant: "mvf" | "addFilter";
    makeInteractiveItem: (item: ICatalogItemPickerItem) => CatalogItemListboxItem;
}
export declare function buildMetricListboxItems(params: IBuildMetricListboxItemsParams): CatalogItemListboxItem[];
export interface IBuildDateListboxItemsParams {
    filteredInsightItems: ICatalogItemPickerItem[];
    filteredCatalogItems: ICatalogItemPickerItem[];
    shouldShowDateDatasetSelector: boolean;
    shouldShowCatalogLoadingRow: boolean;
    hasCatalogItems: boolean;
    fromVisualizationTitle: string | null;
    variant: "mvf" | "addFilter";
    dateDatasetSelectorItem?: CatalogItemListboxItem;
    makeInteractiveItem: (item: ICatalogItemPickerItem) => CatalogItemListboxItem;
}
export declare function buildDateListboxItems(params: IBuildDateListboxItemsParams): CatalogItemListboxItem[];
export interface IBuildAttributeOnlyListboxItemsParams {
    filteredInsightItems: ICatalogItemPickerItem[];
    catalogItemsByDataset: Map<string, {
        title: string;
        items: ICatalogItemPickerItem[];
    }>;
    ungroupedCatalogItems: ICatalogItemPickerItem[];
    shouldShowCatalogLoadingRow: boolean;
    fromVisualizationTitle: string | null;
    ungroupedTitle: string;
    variant: "mvf" | "addFilter";
    makeInteractiveItem: (item: ICatalogItemPickerItem) => CatalogItemListboxItem;
}
export declare function buildAttributeOnlyListboxItems(params: IBuildAttributeOnlyListboxItemsParams): CatalogItemListboxItem[];
export interface IBuildAttributeListboxItemsParams extends IBuildAttributeOnlyListboxItemsParams {
    filteredCatalogItems: ICatalogItemPickerItem[];
    shouldShowDateDatasetSelector: boolean;
    hasCatalogItems: boolean;
    effectiveType: "attribute" | "date";
    dateDatasetSelectorItem?: CatalogItemListboxItem;
}
export declare function buildAttributeListboxItems(params: IBuildAttributeListboxItemsParams): CatalogItemListboxItem[];
//# sourceMappingURL=listboxItemBuilders.d.ts.map