import { AlertDTO, AlertOperation, LatencyCheckResult } from '@meshwatch/types';
import { LatencyCheckDatasource } from '../checks/latency';
declare type ViolationResponse = {
    violated: boolean;
    value?: number;
};
export declare abstract class Alert {
    protected readonly userId: string;
    protected readonly monitorId: string;
    protected readonly windowDuration: number;
    protected readonly operation: AlertOperation;
    protected readonly value: number;
    protected constructor(alertDTO: AlertDTO);
    static fromDTO(alertDTO: AlertDTO): Alert;
    abstract isViolated(latencyCheck: LatencyCheckResult, checkDatasource?: LatencyCheckDatasource): Promise<ViolationResponse>;
}
export {};
