import { IRowNode } from 'ag-grid-enterprise';
import { AdaptableColumn } from './AdaptableColumn';
/**
 * Defines a Cell Edit - includes full details of old and new values, the column and the enclosing Row
 */
export interface CellDataChangedInfo<TData = any> {
    /**
     * Timestamp of change occurrence (in milliseconds)
     */
    changedAt: number;
    /**
     * Value in the Cell before the edit
     */
    oldValue: any;
    /**
     * New value for the cell
     */
    newValue: any;
    /**
     * Column in which cell is situated
     */
    column: AdaptableColumn<TData>;
    /**
     * Primary Key Column's value for the row where edited cell is situated
     */
    primaryKeyValue: any;
    /**
     * AG Grid RowNode that contains the cell
     */
    rowNode?: IRowNode<TData>;
    /**
     * Data in the Row
     */
    rowData?: TData;
    /**
     * What triggered the change - user, background change, a reverted change, or a
     * derived update on a Calculated Column whose source value changed?
     */
    trigger?: 'edit' | 'tick' | 'undo' | 'aggChange' | 'calculatedColumnChange';
    /**
     * Whether the change was prevented by a validation rule
     */
    preventEdit?: boolean;
}
