///
import { RowDataTransaction, GridApi, RowNode, ColDef, ColGroupDef, ColumnApi } from 'ag-grid-community';
import { Rules } from 'async-validator';
import { AgGridConfig, OperationAction, BatchUpdateDataSourceParams } from './interface';
import { RowKey } from '../interface';
import { EventEmitter } from 'events';
export default class GridManage {
rowkey: RowKey | string;
agGridApi: GridApi;
agGridColumnApi: ColumnApi;
columnsDefs: any[];
gridKey?: string;
agGridConfig: AgGridConfig;
historyStack: any[];
private redoStack;
private dataAsyncFun;
private dataAsyncStack;
cutRows: any[];
afterTagRemove: Function;
afterSave: Function;
afterUndo: Function;
afterRedo: Function;
afterCancel: Function;
setingLoading: boolean;
clearloding: boolean;
private gridEvent;
constructor(event: Partial);
get loading(): boolean;
set loading(value: boolean);
validateFields: Rules;
private changeStatus;
get isChanged(): boolean;
get diff(): {
remove: any[];
modify: any[];
add: any[];
};
private outAsyncFunStack;
onDataAsyncEnd(func: any): Promise;
private watchHistory;
private getRowItemData;
private batchUpdateGrid;
addHistoryRecords: (pushData: OperationAction) => void;
appendChild(keys: any, add: any): void;
validate(data?: any[]): Promise;
errorSign(validateErros: any, newData: any[]): void;
private getNodeExtendsParent;
cancelCut(): void;
cut(rowsNodes: RowNode[]): void;
paste(node: any, up?: boolean, isChild?: boolean): void;
reset(agGridConfig: any): void;
dataSourceChanged(dataSource?: any[]): void;
getRowData(): any[];
modify(records: any | any[], oldRecords?: any | any[]): Promise;
create(records: any, targetId?: boolean | string | number, isSub?: boolean): void;
private quickCreateNode;
createNode(targetId: string | number, record?: number | object | any[]): void;
createChildNode(targetId: string | number, record?: number | object | any[]): void;
remove(targetid: any, deleteChildren?: boolean): any[];
tagRemove(targetKeys: string | number | string[] | number[], deleteChildren?: boolean): void;
redoTagRemove(targetKeys: string | number | string[] | number[], deleteChildren?: boolean): void;
applyTransactionAsync: (transaction: RowDataTransaction) => Promise;
private toggleUndoRedo;
undo(): void;
redo(): void;
cancel(): void;
save(cb?: any): Promise;
private changeDiff;
getPureData(): any[];
batchUpdateDataSource(params: BatchUpdateDataSourceParams, keys?: string | string[], isMerge?: boolean, notMergeKeys?: string | string[]): any;
getLocalStorageColumns(columns: (ColDef | ColGroupDef)[], gridKey: any): (ColDef | ColGroupDef)[];
setLocalStorageColumnsState(): void;
clearLocalStorageColumns(): void;
addListener: (type: 'historyChange', func: any) => EventEmitter<[never]>;
removeListener: (type: 'historyChange', func: any) => void;
}