import { IRowNode } from '@ag-grid-community/core';
import { AdaptableColumn } from '../Common/AdaptableColumn';
/**
 * Very lightweight object to define an AdapTable Cell
 */
export type CellAddress = {
    /**
     * Value in Primary Key Column
     */
    PrimaryKeyValue: string | number;
    /**
     * Id of Column containing the Note
     */
    ColumnId: string;
};
/**
 * Defines a Cell in Adaptable - every cell is an intersection of a Column Id and a Primary Key Value
 */
export interface GridCell<TData = any> {
    /**
     * Column in which cell is situated
     */
    column: AdaptableColumn<TData>;
    /**
     * Actual raw value of cell
     */
    rawValue: any;
    /**
     * Normalised value of cell
     */
    normalisedValue: any;
    /**
     * Display value of cell (e.g. if formatted)
     */
    displayValue: any;
    /**
     * Primary Key column's value in row - how Adaptable locates the cell
     */
    primaryKeyValue?: any;
    /**
     * AG Grid Row Node that holds the cell
     */
    rowNode: IRowNode<TData>;
    /**
     * Is the cell in a Pivot Column
     */
    isPivotCell: boolean;
    /**
     * Is the cell in a Row Group Column
     */
    isRowGroupCell: boolean;
}
/**
 * Lightweight object used for identifying a Cell to be updated
 */
export interface CellUpdateRequest<TData = any> {
    /**
     * Id of Column in which edited cell is situated
     */
    columnId: string;
    /**
     * New Value for the cell
     */
    newValue: any;
    /**
     * Primary Key column's value in row - how Adaptable locates the cell
     */
    primaryKeyValue?: any;
    /**
     * AG Grid Row Node that contains the cell (optional)
     */
    rowNode?: IRowNode<TData>;
}
