import { ChangeEvent, ReactNode } from 'react';
import { GenericComponent } from '../../@types/types';
import { BoxProps } from '../box/Box';
import { BodyRowProps } from './BodyRow';
import { CellProps } from './Cell';
import { FooterRowProps } from './FooterRow';
import { HeaderCellProps } from './HeaderCell';
import { HeaderRowProps } from './HeaderRow';
import { HeaderRowOverlayProps } from './HeaderRowOverlay/HeaderRowOverlay';
export interface DataGridProps extends Omit<BoxProps, 'children' | 'className'> {
    /** If true, datagrid will have a border and rounded corners. */
    bordered?: boolean;
    /** The content to display inside the data grid. */
    children?: ReactNode;
    /** A class name for the wrapper to give custom styles. */
    className?: string;
    /** A unique id which will be compared on each render to reset the selected rows */
    comparableId?: string | number;
    /** If true, checkboxes will be rendered on the left side of each row */
    selectable?: boolean;
    /** Amount of columns that will be sticky, starting from left */
    stickyFromLeft?: number;
    /** Amount of columns that will be sticky, starting from right */
    stickyFromRight?: number;
    /** Callback function that is fired when the selected rows have changed */
    onSelectionChange?: (selection: (string | number)[], event: ChangeEvent | null) => void;
    /** If true, a loading bar will be rendered below the header row */
    processing?: boolean;
}
interface DatagridComponent extends GenericComponent<DataGridProps> {
    HeaderRow: GenericComponent<HeaderRowProps>;
    HeaderRowOverlay: GenericComponent<HeaderRowOverlayProps>;
    HeaderCell: GenericComponent<HeaderCellProps>;
    BodyRow: GenericComponent<BodyRowProps>;
    Cell: GenericComponent<CellProps>;
    FooterRow: GenericComponent<FooterRowProps>;
}
export declare const DataGrid: DatagridComponent;
export default DataGrid;
