import { AlertDefinition } from '../../../AdaptableState/AlertState';
import { CellDataChangedInfo } from '../../../AdaptableState/Common/CellDataChangedInfo';
import { RowDataChangedInfo } from '../../../AdaptableState/Common/RowDataChangedInfo';
import { IAdaptableService } from './IAdaptableService';
export type ReactiveAlertInfo = ReactiveRowDataChangedAlertInfo | ReactiveCellDataChangedAlertInfo;
export type ReactiveRowDataChangedAlertInfo = {
    type: 'rowDataChangedAlert';
    alertDefinition: AlertDefinition;
    gridChangeLogEntry: RowDataChangedInfo;
};
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 isRowDataChangedInfo: (value: CellDataChangedInfo | RowDataChangedInfo) => value is RowDataChangedInfo<any>;
export declare const isCellDataChangedInfo: (value: CellDataChangedInfo | RowDataChangedInfo) => value is CellDataChangedInfo<any>;
