import type { Dispatch, SetStateAction } from "react";
import type { IconName } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/ui";
import type { CollectionEssentials } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api";
import type { FilterableModel } from "./types";
export declare const getCollectionName: (collection: CollectionEssentials) => string;
/** The root collection's id might be null or 'root' in different contexts.
 * Use 'root' instead of null, for the sake of sorting */
export declare const getCollectionIdForSorting: (collection: CollectionEssentials) => import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").CollectionId;
export type AvailableModelFilters = Record<string, {
    predicate: (value: FilterableModel) => boolean;
    activeByDefault: boolean;
}>;
export type ModelFilterControlsProps = {
    actualModelFilters: ActualModelFilters;
    setActualModelFilters: Dispatch<SetStateAction<ActualModelFilters>>;
};
/** Mapping of filter names to true if the filter is active
 * or false if it is inactive */
export type ActualModelFilters = Record<string, boolean>;
export declare const filterModels: <T extends FilterableModel>(unfilteredModels: T[] | undefined, actualModelFilters: ActualModelFilters, availableModelFilters: AvailableModelFilters) => T[];
export declare const getIcon: (item: unknown) => {
    name: IconName;
    color: string;
};
