import type { CharacteristicValue, Logger, PlatformAccessory } from "homebridge";
import type { DenonAudioPlatform } from "./platform.js";
/**
 * Platform Accessory
 * An instance of this class is created for each accessory your platform registers
 * Each accessory may expose multiple services of different service types.
 */
export declare class DenonAudioAccessory {
    private static readonly CALLBACK_TIMEOUT;
    private static readonly API_CONNECT_TIMEOUT;
    private static readonly API_RESPONSE_TIMEOUT;
    private readonly platform;
    private readonly accessory;
    private readonly denonClient;
    private readonly informationService;
    private readonly tvService;
    private readonly speakerService;
    private readonly rawLog;
    private readonly log;
    private readonly name;
    private readonly ip;
    private readonly serialNumber;
    private readonly controlMode;
    private readonly volumeStepSize;
    private readonly volumeLimit;
    private lastSetVolume;
    private targetMediaState;
    private volumeChangeOngoing;
    private playingChangeOngoing;
    constructor(platform: DenonAudioPlatform, accessory: PlatformAccessory, config: any, log: Logger);
    private fetchMetadataAios;
    /**
     * Handle the "GET" requests from HomeKit
     * These are sent when HomeKit wants to know the current state of the accessory, for example, checking if a Light bulb is on.
     */
    getActive(): Promise<CharacteristicValue>;
    getActiveIdentifier(): Promise<CharacteristicValue>;
    private getPlaying;
    getCurrentMediaState(): Promise<CharacteristicValue>;
    getTargetMediaState(): Promise<CharacteristicValue>;
    getMute(): Promise<CharacteristicValue>;
    getVolume(): Promise<CharacteristicValue>;
    setIdentify(value: any): void;
    setActive(newValue: CharacteristicValue): void;
    setActiveIdentifier(newValue: CharacteristicValue): void;
    setRemoteKey(remoteKey: CharacteristicValue): void;
    setTargetMediaState(newValue: CharacteristicValue): Promise<void>;
    setPlayPauseToggle(): Promise<void>;
    setPlayNext(): void;
    setPlayPrevious(): void;
    setMute(newValue: CharacteristicValue): void;
    setVolume(newValue: CharacteristicValue): Promise<void>;
    setVolumeSelector(direction: CharacteristicValue): Promise<void>;
    private callbackActive;
    private callbackMute;
    private callbackVolume;
    private adjustToVolumeLimit;
    private adjustBackFromVolumeLimit;
}
