import { GridApi, ICellEditorParams, ICellRendererParams, IRowNode } from 'ag-grid-community';
import React from 'react';
import { MenuDropdownOption } from '../GenericHeader/GenericHeader';
import { ColumnDefinition, FrameworkComponents, RowSelectablePredicateParams, RowSelectionRef, SelectAllState, 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>;
type GroupNodes = {
    first: IRowNode | null;
    firstLoading: IRowNode | null;
    last: IRowNode | 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;
    suppressExpandGroupsButton: boolean;
    showExpandableMenuOptions: boolean;
    columnHeaderMenuOptions: MenuDropdownOption[];
}, onSelectAll?: (param: SelectAllState.All | SelectAllState.None) => void, selectionSSREnabled?: boolean, rowSelectionRef?: React.RefObject<RowSelectionRef>): FrameworkComponents;
export declare function getCurrentRows(gridApi?: GridApi): IRowNode<any>[];
export declare function bulkEditingGenerallyEnabled(columnDefinitions: ColumnDefinition[]): boolean;
export declare function isRowSelectionEnabledForRow(rowSelectionEnabled: (params: RowSelectablePredicateParams) => boolean, node: IRowNode): boolean;
export declare function isBulkEditingEnabledForRow(colDef: ColumnDefinition, node: IRowNode): boolean;
export declare function rowSelectedEnabledForAnyRows(rowSelectionEnabled: TableProps['rowSelectionEnabled'], columnDefinitions: ColumnDefinition[], gridApi?: GridApi): boolean;
export {};
