import { Characteristic, CharacteristicValue, Logger, Nullable, PlatformAccessory, Service } from 'homebridge';
import { AEGPlatform } from './platform.js';
interface ErrorCharacteristic {
    characteristic: Characteristic;
    originalValue: Nullable<CharacteristicValue>;
}
type ServiceConstructor = typeof Service & {
    new (displayName?: string, subtype?: string): Service;
    UUID: string;
};
export declare class AEGAccessory {
    readonly platform: AEGPlatform;
    readonly accessory: PlatformAccessory;
    readonly name: string;
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    readonly HapStatusError: typeof import("homebridge").HapStatusError;
    log: Logger;
    private readonly obsoleteServices;
    private primaryService?;
    customNames: Map<string, string>;
    persistPromise?: Promise<void>;
    private errorCharacteristic?;
    constructor(platform: AEGPlatform, accessory: PlatformAccessory, name: string);
    makeService(serviceConstructor: ServiceConstructor, suffix?: string, subtype?: string): Service;
    addServiceName(service: Service, suffix: string, defaultName: string): void;
    withPersist(type: 'read-only' | 'read-write', operation: () => void | Promise<void>): Promise<void>;
    loadPersist(): Promise<void>;
    savePersist(): Promise<void>;
    cleanupServices(): void;
    setError(cause?: unknown): void;
    static setError(platform: AEGPlatform, accessory: PlatformAccessory, cause: unknown): ErrorCharacteristic | undefined;
}
export {};
//# sourceMappingURL=accessory.d.ts.map