import { AlertDefinition } from '../../../PredefinedConfig/AlertState';
import { CellDataChangedInfo } from '../../../PredefinedConfig/Common/CellDataChangedInfo';
import { GridDataChangedInfo } from '../../../types';
import { IAdaptableService } from './IAdaptableService';
export type ReactiveAlertInfo = ReactiveGridDataChangedAlertInfo | ReactiveCellDataChangedAlertInfo;
export type ReactiveGridDataChangedAlertInfo = {
    type: 'gridDataChangedAlert';
    alertDefinition: AlertDefinition;
    gridChangeLogEntry: GridDataChangedInfo;
};
export type ReactiveCellDataChangedAlertInfo = {
    type: 'cellDataChangedAlert';
    alertDefinition: AlertDefinition;
    cellChangeLogEntry: CellDataChangedInfo;
};
export interface IAlertService extends IAdaptableService {
    createReactiveAlert(alertDefinition: AlertDefinition): void;
    deleteReactiveAlert(alertDefinition: AlertDefinition): void;
    onReactiveAlertTriggered(callback: (payload: ReactiveAlertInfo) => void): () => void;
    getReactiveActiveAlerts(): AlertDefinition[];
    isReactiveAlertActive(alertDefinition: AlertDefinition): boolean;
}
export declare const isGridDataChangedInfo: (value: CellDataChangedInfo | GridDataChangedInfo) => value is GridDataChangedInfo<any>;
export declare const isCellDataChangedInfo: (value: CellDataChangedInfo | GridDataChangedInfo) => value is CellDataChangedInfo<any>;
