import { DenonClient, Playing } from "./denonClient.js";
import * as DenonProtocol from "./denonProtocol.js";
export declare class DenonClientAvrControl extends DenonClient {
    readonly controlMode = DenonProtocol.ControlMode.AVRCONTROL;
    protected static readonly PROTOCOL: {
        POWER: {
            GET: {
                COMMAND: string;
                PARAMS: string;
                EXP_RES: RegExp;
            };
            SET: {
                COMMAND: string;
                PARAMS: string;
                EXP_RES: RegExp;
            };
            VALUES: {
                ON: {
                    VALUE: string;
                    MAP: boolean;
                };
                OFF: {
                    VALUE: string;
                    MAP: boolean;
                };
            };
        };
        MUTE: {
            GET: {
                COMMAND: string;
                PARAMS: string;
                EXP_RES: RegExp;
            };
            SET: {
                COMMAND: string;
                PARAMS: string;
                EXP_RES: RegExp;
            };
            VALUES: {
                ON: {
                    VALUE: string;
                    MAP: boolean;
                };
                OFF: {
                    VALUE: string;
                    MAP: boolean;
                };
            };
        };
        VOLUME: {
            GET: {
                COMMAND: string;
                PARAMS: string;
                EXP_RES: RegExp;
            };
            SET: {
                COMMAND: string;
                PARAMS: string;
                EXP_RES: RegExp;
            };
        };
        VOLUME_UP: {
            SET: {
                COMMAND: string;
            };
        };
        VOLUME_DOWN: {
            SET: {
                COMMAND: string;
            };
        };
    };
    constructor(serialNumber: string, host: string, connect_timeout: number, response_timeout: number, debugLogCallback?: (message: string, ...parameters: any[]) => void, powerUpdateCallback?: (power: boolean) => void, muteUpdateCallback?: (mute: boolean) => void, volumeUpdateCallback?: (volume: number) => void);
    protected subscribeToChangeEvents(): Promise<void>;
    protected responseRouter(response: string): void;
    private genericResponseHandler;
    getPower(): Promise<boolean>;
    setPower(power: boolean): Promise<boolean>;
    getPlaying(): Promise<Playing>;
    setPlaying(): Promise<Playing>;
    setPlayNext(): Promise<void>;
    setPlayPrevious(): Promise<void>;
    getMute(): Promise<boolean>;
    setMute(mute: boolean): Promise<boolean>;
    getVolume(): Promise<number>;
    setVolume(volume: number): Promise<number>;
    setVolumeUp(volumeIncrement: number): Promise<void>;
    setVolumeDown(volumeDecrement: number): Promise<void>;
}
