import { IDictionary } from "ts-generic-collections-linq";
export {};
/**
 * @class
 * @name Alert
 * @public
 * @description
 *      This class represents an Alert to send to the Users with the "Alert" subscription and the an AlertDevice created. <br>
 */
declare class Alert {
    id: string;
    name: string;
    description: string;
    status: string;
    templateId: string;
    filterId: string;
    companyId: string;
    startDate: string;
    expirationDate: string;
    constructor(name?: string, description?: string, status?: string, templateId?: string, filterId?: string, companyId?: string, startDate?: string, expirationDate?: string);
}
/**
 * @class
 * @name AlertsData
 * @description
 *      Structure used when retrieving severals Alerts from server. <br>
 */
declare class AlertsData {
    get size(): number;
    set size(value: number);
    get alerts(): IDictionary<string, Alert>;
    set alerts(value: IDictionary<string, Alert>);
    private _alerts;
    total: number;
    limit: number;
    offset: number;
    private _size;
    private lockEngine;
    private lockKey;
    constructor(limit?: number);
    lock(fn: any): any;
    addAlert(alert: Alert): Promise<Alert>;
    removeBubbleToJoin(alert: Alert): Promise<any>;
    getAlert(): Promise<Alert>;
    first(): Promise<Alert>;
    last(): Promise<Alert>;
}
export { Alert, AlertsData };
