import { type DatabaseId, type SearchModel, type SearchResult, type SearchResultId } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api";
import type { EntityPickerSearchScope, EntityPickerTab, SearchItem, TypeWithModel } from "./types";
export declare const getEntityPickerIcon: <Id, Model extends string>(item: TypeWithModel<Id, Model>, isSelected?: boolean) => import("@metabase/embedding-sdk-react/dist/frontend/src/metabase/lib/icon").IconData;
export declare const isSelectedItem: <Id, Model extends string>(item: TypeWithModel<Id, Model>, selectedItem: TypeWithModel<Id, Model> | null) => boolean;
export declare const computeInitialTabId: <Id extends SearchResultId, Model extends string, Item extends TypeWithModel<Id, Model>>({ initialValue, tabs, defaultToRecentTab, }: {
    initialValue?: Partial<Item>;
    tabs: EntityPickerTab<Id, Model, Item>[];
    defaultToRecentTab: boolean;
}) => string;
export declare function getSearchTabText(searchResults: SearchItem[] | null, searchQuery: string): string;
export declare const getSearchModels: <Id extends SearchResultId, Model extends string, Item extends TypeWithModel<Id, Model>>(tabs: EntityPickerTab<Id, Model, Item>[]) => SearchModel[];
export declare const getSearchFolderModels: <Id extends SearchResultId, Model extends string, Item extends TypeWithModel<Id, Model>>(tabs: EntityPickerTab<Id, Model, Item>[]) => Model[];
export declare const isSearchFolder: <Id extends SearchResultId, Model extends string, Item extends TypeWithModel<Id, Model>>(folder: Item, folderModels: Model[]) => boolean;
export declare const getSearchInputPlaceholder: <Id extends SearchResultId, Model extends string, Item extends TypeWithModel<Id, Model>>(folder: Item | undefined) => string;
export declare const getScopedSearchResults: <Id extends SearchResultId, Model extends string, Item extends TypeWithModel<Id, Model>>(searchResults: SearchResult[] | null, searchScope: EntityPickerSearchScope, folder: Item | undefined) => SearchResult[];
export declare const isSchemaItem: <Id extends SearchResultId, Model extends string, Item extends TypeWithModel<Id, Model>>(item: Item) => item is Item & {
    dbId: DatabaseId;
    dbName: string;
    isOnlySchema: boolean;
};
