import type { HTMLAttributes, PropsWithChildren } from "react";
import type { CollectionContentTableColumnsMap } from "../../../collections/components/CollectionContent";
import type { CreateBookmark, DeleteBookmark, OnCopy, OnMove, OnToggleSelectedWithItem } from "../../../collections/types";
import type { ItemRendererProps } from "../../../components/ItemsTable/DefaultItemRenderer";
import type Database from "../../../../metabase-lib/v1/metadata/Database";
import type { Bookmark, Collection, CollectionItem } from "../../../../metabase-types/api";
import { type SortColumn, type SortingOptions } from "../../../../metabase-types/api/sorting";
import type { ResponsiveProps } from "../utils";
export type SortableColumnHeaderProps = {
    name?: SortColumn;
    sortingOptions?: SortingOptions;
    onSortingOptionsChange?: (newSortingOptions: SortingOptions) => void;
    columnHeaderProps?: Partial<HTMLAttributes<HTMLTableHeaderCellElement>>;
} & PropsWithChildren<Partial<HTMLAttributes<HTMLDivElement>>>;
export declare const SortableColumnHeader: ({ name, sortingOptions, onSortingOptionsChange, children, hideAtContainerBreakpoint, containerName, columnHeaderProps, ...props }: SortableColumnHeaderProps & ResponsiveProps) => import("react/jsx-runtime").JSX.Element;
export type BaseItemsTableProps = {
    items: CollectionItem[];
    collection?: Collection;
    databases?: Database[];
    bookmarks?: Bookmark[];
    createBookmark?: CreateBookmark;
    deleteBookmark?: DeleteBookmark;
    selectedItems?: CollectionItem[];
    hasUnselected?: boolean;
    isPinned?: boolean;
    sortingOptions?: SortingOptions;
    onSortingOptionsChange?: (newSortingOptions: SortingOptions) => void;
    onToggleSelected?: OnToggleSelectedWithItem;
    onSelectAll?: () => void;
    onSelectNone?: () => void;
    onCopy?: OnCopy;
    onMove?: OnMove;
    onDrop?: () => void;
    getIsSelected?: (item: any) => boolean;
    /** Used for dragging */
    headless?: boolean;
    isInDragLayer?: boolean;
    ItemComponent?: (props: ItemRendererProps) => JSX.Element;
    includeColGroup?: boolean;
    onClick?: (item: CollectionItem) => void;
    visibleColumnsMap: CollectionContentTableColumnsMap;
} & Partial<Omit<HTMLAttributes<HTMLTableElement>, "onCopy" | "onClick">>;
export declare const BaseItemsTable: {
    ({ databases, bookmarks, createBookmark, deleteBookmark, items, collection, selectedItems, hasUnselected, isPinned, onCopy, onMove, onDrop, sortingOptions, onSortingOptionsChange, onToggleSelected, onSelectAll, onSelectNone, getIsSelected, headless, isInDragLayer, ItemComponent, includeColGroup, visibleColumnsMap, onClick, ...props }: BaseItemsTableProps): import("react/jsx-runtime").JSX.Element;
    Item: ({ item, isSelected, isPinned, onToggleSelected, collection, onCopy, onMove, createBookmark, deleteBookmark, databases, bookmarks, testIdPrefix, onClick, visibleColumnsMap, }: ItemRendererProps) => import("react/jsx-runtime").JSX.Element;
};
