import type { PlatformAccessory, Service } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { VirtualLogger } from '../utils/virtualLogger.js';
/**
 * Abstract Accessory
 */
export declare abstract class Accessory {
    service?: Service;
    readonly platform: VirtualAccessoriesPlatform;
    readonly accessory: PlatformAccessory;
    readonly accessoryConfiguration: AccessoryConfiguration;
    readonly log: VirtualLogger;
    protected accessoryName: string;
    protected defaultState: any;
    protected storagePath: string;
    private accessoryInformationService?;
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    isExternalAccessory(): boolean;
    updateConfiguredName(): void;
    private readonly EMPTY_ACCESSORY_STATE;
    protected isEmptyAccessoryState(json: any): boolean;
    protected loadAccessoryState(storagePath: string): any;
    private saveAccessoryState;
    protected deleteAccessoryState(storagePath: string): void;
    protected storeState(): void;
    protected abstract getAccessoryTypeName(): string;
    protected abstract getJsonState(): string;
}
