import { ColDef, EditableCallback, ICellRendererParams, ValueFormatterFunc, ValueGetterFunc } from 'ag-grid-community';
import { ReactElement } from 'react';
export declare const agGridSelectRowColId = "ag-Grid-SelectionColumn";
export interface GridBaseRow {
    id: string | number;
}
export interface GridOnRowDragEndProps<TData extends GridBaseRow> {
    /** The row the user physically grabbed by its drag handle. */
    movedRow: TData;
    /** All rows being moved, ordered by display index. Single-element array when dragging an unselected row. */
    movedRows: TData[];
    targetRow: TData;
    /** -1 = dropped above target, 1 = dropped below target. */
    direction: -1 | 1;
}
export interface ColDefT<TData extends GridBaseRow, ValueType = any> extends ColDef<TData, ValueType> {
    editable?: boolean | EditableCallback<TData, ValueType>;
    /** When true, this column's editable state ignores the grid-level `readOnly` prop. */
    ignoreGridReadOnly?: boolean;
    valueGetter?: string | ValueGetterFunc<TData, ValueType>;
    valueFormatter?: string | ValueFormatterFunc<TData, ValueType>;
    cellRenderer?: ((props: ICellRendererParams<TData, ValueType>) => ReactElement | string | false | null | undefined) | string;
    cellRendererParams?: {
        rightHoverElement?: ReactElement;
        originalCellRenderer?: any;
        editAction?: (selectedRows: TData[]) => void;
        shortcutKeys?: Record<string, () => void>;
        error?: (props: ICellRendererParams<TData, ValueType>) => ReactElement | string | false | null | undefined;
        warning?: (props: ICellRendererParams<TData, ValueType>) => ReactElement | string | false | null | undefined;
        info?: (props: ICellRendererParams<TData, ValueType>) => ReactElement | string | false | null | undefined;
    };
    editor?: (editorProps: any) => ReactElement;
}
