import { GridApi, ICellEditorParams, ICellRendererParams, RowNode } from 'ag-grid-community';
import React from 'react';
import { MenuDropdownOption } from '../GenericHeader/GenericHeader';
import { ColumnDefinition, FrameworkComponents, RowSelectablePredicateParams, RowSelectionRef, TableProps } from '../types';
export declare function withDataTableEditor(Component: React.ForwardRefExoticComponent<any>, editorType: 'input' | 'select' | 'date'): React.ForwardRefExoticComponent<ICellEditorParams>;
export declare function withDataTableRenderer(Component: React.ComponentType<any>, editorType?: 'input' | 'select' | 'date'): React.FC<ICellRendererParams>;
declare type GroupNodes = {
    first: RowNode | null;
    firstLoading: RowNode | null;
    last: RowNode | null;
};
export declare function getGroupNodes(params: ICellRendererParams): GroupNodes;
export declare const DefaultFrameworkComponents: FrameworkComponents;
export declare function getFrameworkComponents(customCells: (import("../types").CustomEditorCell | import("../types").CustomRendererCell)[] | undefined, headerMenuConfig: {
    suppressResetColumnsOption: boolean;
    showExpandableMenuOptions: boolean;
    columnHeaderMenuOptions: MenuDropdownOption[];
}, onSelectAll?: (param: 'all' | 'none') => void, rowSelectionRef?: React.RefObject<RowSelectionRef>): FrameworkComponents;
export declare function getCurrentRows(gridApi?: GridApi): RowNode[];
export declare function bulkEditingGenerallyEnabled(columnDefinitions: ColumnDefinition[]): boolean;
export declare function isRowSelectionEnabledForRow(rowSelectionEnabled: (params: RowSelectablePredicateParams) => boolean, node: RowNode): boolean;
export declare function isBulkEditingEnabledForRow(colDef: ColumnDefinition, node: RowNode): boolean;
export declare function rowSelectedEnabledForAnyRows(rowSelectionEnabled: TableProps['rowSelectionEnabled'], columnDefinitions: ColumnDefinition[], gridApi?: GridApi): boolean;
export {};
