import { IDataService } from './Interface/IDataService';
import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
import { CellDataChangedInfo } from '../../AdaptableState/Common/CellDataChangedInfo';
import { EmitterCallback } from '../../Utilities/Emitter';
import { Observable } from 'rxjs';
import { RowDataChangedInfo } from '../../types';
export declare class DataService implements IDataService {
    private adaptable;
    private emitter;
    private cellDataChangeLogSubject$;
    cellDataChangeLog$: Observable<CellDataChangedInfo>;
    private rowDataChangeLogSubject$;
    rowDataChangeLog$: Observable<RowDataChangedInfo>;
    private undoChangeLog;
    private undoChangeTimers;
    constructor(adaptable: IAdaptable);
    destroy(): void;
    on: (eventName: string, callback: EmitterCallback) => (() => void);
    emit: (eventName: string, data?: any) => Promise<any>;
    CreateCellDataChangedEvent(cellDataChangedInfo: CellDataChangedInfo): void;
    CreateRowDataChangedEvent(rowDataChangedInfo: RowDataChangedInfo): void;
    logUndoChange(change: CellDataChangedInfo): void;
    extractUndoChange(change: CellDataChangedInfo): CellDataChangedInfo | undefined;
    private getUndoChangeKey;
    private extractDataChangeLogEntry;
}
