import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { Accessory } from './accessory.js';
import { TriggerableAlarm } from './triggerableAlarm.js';
/**
 * SecuritySystem - Accessory implementation
 */
export declare class SecuritySystem extends Accessory implements TriggerableAlarm {
    static readonly ACCESSORY_TYPE_NAME: string;
    static readonly STAY_ARM: number;
    static readonly AWAY_ARM: number;
    static readonly NIGHT_ARM: number;
    static readonly DISARMED: number;
    static readonly ALARM_TRIGGERED: number;
    private readonly stateStorageKey;
    private armingDelayTimer;
    private states;
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    getSecuritySystemCurrentState(): Promise<CharacteristicValue>;
    setSecuritySystemTargetState(value: CharacteristicValue): Promise<void>;
    getSecuritySystemTargetState(): Promise<CharacteristicValue>;
    protected getJsonState(): string;
    protected getAccessoryTypeName(): string;
    static getStateName(state: number): string;
    /**
     * Ensure all the property values are set, then remove as required
     */
    private setSecurityServiceProperties;
    private generatePropertyValueList;
    triggerAlarm(value: number, accessoryId: string): void;
}
export declare class SecurityServiceTriggerType {
    static None: number;
    static TriggerAlarm: number;
    static TriggerPanic: number;
    static isValid(value: number): boolean;
    static getName(state: number): string;
}
