import { ColumnDef, ColumnFiltersState, OnChangeFn, PaginationState, Row, SortingState, Table as TanstackTable } from '@tanstack/react-table';
import { default as React } from 'react';
import { GridProps } from '../layout/grid';
import { MasonryProps } from '../layout/masonry';
export type DataDisplayLayout = "grid" | "list" | "masonry";
export interface DataDisplayProps<TData> {
    data: TData[];
    columns: ColumnDef<TData>[];
    renderItem: (row: Row<TData>) => React.ReactNode;
    layout?: DataDisplayLayout;
    gridProps?: Partial<GridProps>;
    masonryProps?: Partial<MasonryProps>;
    itemContainerClassName?: string;
    pageCount?: number;
    pagination?: PaginationState;
    onPaginationChange?: OnChangeFn<PaginationState>;
    sorting?: SortingState;
    onSortingChange?: OnChangeFn<SortingState>;
    columnFilters?: ColumnFiltersState;
    onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>;
    globalFilter?: string;
    onGlobalFilterChange?: OnChangeFn<string>;
    isLoading?: boolean;
    toolbarChildren?: React.ReactNode;
    bulkActions?: (table: TanstackTable<TData>) => React.ReactNode;
    /**
     * If true, adds a "Sort By" dropdown to the toolbar automatically
     * since column headers aren't visible.
     */
    enableSortControl?: boolean;
}
export declare function DataDisplay<TData>({ data, columns, renderItem, layout, gridProps, masonryProps, itemContainerClassName, pageCount, pagination, onPaginationChange, sorting, onSortingChange, columnFilters, onColumnFiltersChange, globalFilter, onGlobalFilterChange, isLoading, toolbarChildren, bulkActions, enableSortControl, }: DataDisplayProps<TData>): import("react/jsx-runtime").JSX.Element;
