import { AlarmStatus, Context, Delta, Notification, NotificationId, Path, Update, Value } from '@signalk/server-api';
export interface AlarmProperties {
    context: Context;
    path: Path;
    value: Value;
}
export declare class Alarm {
    private external;
    status: AlarmStatus;
    private context;
    private update;
    private path;
    value: Notification;
    /**
     * Alarm Object
     * @param notificationId Notification identifier
     */
    constructor(notificationId?: NotificationId);
    /**
     * Extract and populate attributes from update and context
     * @param update Update object
     * @param context Context value
     */
    private parseDelta;
    /**
     * Align notification alarm method with state and recorded user action
     */
    private alignAlarmMethod;
    /** Update the timestamp to the current date / time */
    private timeStamp;
    /**
     * Create / update alarm from incoming update and context
     * @param update Update object
     * @param context Context value
     */
    syncFromNotificationUpdate(update: Update, context: Context): void;
    /**
     * Returns true if Alarm is external (generated from incoming Delta message)
     */
    get isExternal(): boolean;
    /**
     * Generates and returns the delta payload for use with `handleMessage()`
     * @returns Delta message payload
     */
    get delta(): Delta;
    /** Return Alarm properties */
    get properties(): AlarmProperties;
    /**
     * Return the external key (context/path/$source) of an alarm generated from incoming Delta.
     */
    get extKey(): string;
    /**
     * Sets the path associated with the alarm.
     * @param id If supplied, the identifier will be appended to the notification path.
     */
    setPath(path: Path, id?: string): void;
    /** Silence Alarm */
    silence(): void;
    /** Acknowledge Alarm */
    acknowledge(): void;
    /**
     * Clears the Alarm by setting state = normal and resetting status.
     */
    clear(): void;
}
//# sourceMappingURL=alarm.d.ts.map