import { Model, Primitives } from '@srclaunch/types';
import { ReactElement } from 'react';
import { ButtonProps as ButtonProperties } from '../../forms/buttons/button';
import { MenuButtonProps as MenuButtonProperties } from '../../forms/buttons/menu-button';
import { SearchInputProps as SearchInputProperties } from '../../forms/inputs/text/search-input';
import { ContainerProps } from '../../layout/container';
export declare enum DataGridDisplayType {
    Card = "card",
    Table = "table"
}
export declare type DataGridColumn = ContainerProps<{
    readonly fallbackField?: string;
    readonly field: string;
    readonly fields?: readonly string[];
    readonly label: string;
    readonly type: Primitives;
}>;
export declare type DataGridRow = {
    readonly onClick?: (row: DataGridRow | unknown) => unknown;
};
export declare const DataGrid: import("react").MemoExoticComponent<({ backgroundColor, borderRadius, className, columns, data, display, header, model, onItemClick, shadow, state, template, ...props }: ContainerProps<{
    readonly className?: string | undefined;
    readonly columnCount?: number | undefined;
    readonly columns: readonly DataGridColumn[];
    readonly data?: readonly Record<string, unknown>[] | undefined;
    readonly display?: DataGridDisplayType | undefined;
    readonly header?: {
        readonly create?: ButtonProperties | undefined;
        readonly export?: MenuButtonProperties | undefined;
        readonly search?: import("../..").TextInputProps | undefined;
    } | undefined;
    readonly hideOnProp?: string | undefined;
    readonly model?: Model | undefined;
    readonly onItemClick?: ((row: Record<string, unknown>) => unknown) | undefined;
    readonly template?: {
        readonly card?: (({ row, }: ContainerProps<{
            readonly row: DataGridRow;
        }, HTMLDivElement>) => ReactElement) | undefined;
        readonly row?: (({ row, }: ContainerProps<{
            readonly row: DataGridRow;
        }, HTMLDivElement>) => ReactElement) | undefined;
    } | undefined;
}, HTMLDivElement>) => ReactElement>;
export default DataGrid;
export * from './data-grid-cell';
export * from './data-grid-column';
export * from './data-grid-header';
export * from './data-grid-row';
//# sourceMappingURL=index.d.ts.map