import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { Accessory } from './accessory.js';
import { TriggerableEventAccessory } from './triggerableEventAccessory.js';
/**
 * Doorbell - Accessory implementation
 */
export declare class Doorbell extends Accessory implements TriggerableEventAccessory {
    static readonly ACCESSORY_TYPE_NAME: string;
    static readonly SINGLE_PRESS: number;
    static readonly DOUBLE_PRESS: number;
    static readonly LONG_PRESS: number;
    private static readonly COMPANION_TIMER_RESET;
    private readonly muteStorageKey;
    private states;
    private companionSwitch?;
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    getProgrammableSwitchEvent(): Promise<CharacteristicValue>;
    setMute(value: CharacteristicValue): Promise<void>;
    getMute(): Promise<CharacteristicValue>;
    setVolume(value: CharacteristicValue): Promise<void>;
    getVolume(): Promise<CharacteristicValue>;
    /**
     * This method is called by the comoanion switch to ring the doorbell
     */
    triggerEvent(companionAccessory: Accessory): Promise<void>;
    protected getJsonState(): string;
    protected getAccessoryTypeName(): string;
    static getEventName(event: number): string;
    private createCompanionSwitch;
}
