import { type RecentItem, type SearchModel, type SearchRequest, type SearchResult, type SearchResultId } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api";
import type { EntityPickerOptions, EntityTab, TypeWithModel } from "../../types";
export type EntityPickerModalOptions = {
    showSearch?: boolean;
    hasConfirmButtons?: boolean;
    confirmButtonText?: string;
    cancelButtonText?: string;
    hasRecents?: boolean;
};
export declare const defaultOptions: EntityPickerModalOptions;
export declare const ENTITY_PICKER_Z_INDEX: number;
export interface EntityPickerModalProps<Model extends string, Item> {
    title?: string;
    selectedItem: Item | null;
    initialValue?: Partial<Item>;
    onConfirm?: () => void;
    onItemSelect: (item: Item) => void;
    canSelectItem: boolean;
    onClose: () => void;
    tabs: EntityTab<Model>[];
    options?: Partial<EntityPickerOptions>;
    searchResultFilter?: (results: SearchResult[]) => SearchResult[];
    recentFilter?: (results: RecentItem[]) => RecentItem[];
    searchParams?: Partial<SearchRequest>;
    actionButtons?: JSX.Element[];
    trapFocus?: boolean;
    /**defaultToRecentTab: If set to true, will initially show the recent tab when the modal appears. If set to false, it will show the tab
     * with the same model as the initialValue. Defaults to true.
     */
    defaultToRecentTab?: boolean;
}
export declare function EntityPickerModal<Id extends SearchResultId, Model extends SearchModel, Item extends TypeWithModel<Id, Model>>({ title, onItemSelect, canSelectItem, onConfirm, selectedItem, initialValue, onClose, tabs: passedTabs, options, actionButtons, searchResultFilter, recentFilter, trapFocus, searchParams, defaultToRecentTab, }: EntityPickerModalProps<Model, Item>): import("react/jsx-runtime").JSX.Element;
