import { IDataService } from './Interface/IDataService';
import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
import { EmitterCallback } from '../../Utilities/Emitter';
import { Observable } from 'rxjs';
import { GridDataChangedInfo } from '../../types';
export declare class DataService implements IDataService {
    private adaptable;
    private emitter;
    private dataChangeLogSubject$;
    dataChangeLog$: Observable<CellDataChangedInfo>;
    private gridChangeLogSubject$;
    gridChangeLog$: Observable<GridDataChangedInfo>;
    private undoChangeLog;
    private undoChangeTimers;
    constructor(adaptable: IAdaptable);
    destroy(): void;
    on: (eventName: string, callback: EmitterCallback) => (() => void);
    emit: (eventName: string, data?: any) => Promise<any>;
    CreateDataChangedEvent(cellDataChangedInfo: CellDataChangedInfo): void;
    CreateGridChangedEvent(gridDataChangedInfo: GridDataChangedInfo): void;
    logUndoChange(change: CellDataChangedInfo): void;
    extractUndoChange(change: CellDataChangedInfo): CellDataChangedInfo | undefined;
    private getUndoChangeKey;
    private extractDataChangeLogEntry;
}
