import { BaseEventInfo } from './BaseEventInfo';
import { AdaptableFormData } from '../../PredefinedConfig/Common/AdaptableForm';
import { IRowNode } from '@ag-grid-community/core';
/**
 * Info passed into ActionRowSubmitted Event - can be `CreatedActionRowInfo` or `EditedActionRowInfo` or `DeletedActionRowInfo`
 */
export type ActionRowSubmittedInfo<TData = any> = CreatedActionRowInfo<TData> | EditedActionRowInfo<TData> | DeletedActionRowInfo<TData>;
/**
 *  Info passed into ActionRowSubmitted Event for Created Rows
 */
export interface CreatedActionRowInfo<TData = any> extends BaseEventInfo {
    /**
     * Specifies its a Created Action Row
     */
    type: 'rowCreated';
    /**
     * Data entered in the Form
     */
    formData: AdaptableFormData;
    /**
     * Node being cloned
     */
    clonedRowNode?: IRowNode<TData>;
}
/**
 * Info passed into ActionRowSubmitted Event for Edited Rows
 */
export interface EditedActionRowInfo<TData = any> extends BaseEventInfo {
    /**
     * Specifies its an Edited Action Row
     */
    type: 'rowEdited';
    /**
     * Data entered in the Form
     */
    formData: AdaptableFormData;
    /**
     * Node being edited
     */
    rowNode: IRowNode<TData>;
}
/**
 * Info passed into ActionRowSubmitted Event for Deleted Rows
 */
export interface DeletedActionRowInfo<TData = any> extends BaseEventInfo {
    /**
     * Specifies its a Deleted Action Row
     */
    type: 'rowDeleted';
    /**
     * Node being deleted
     */
    rowNode: IRowNode<TData>;
}
