import { DeviceOnOffListener, SoundTouchDevice } from './sound-touch-device';
import { HomebridgeAccessoryWrapper } from 'homebridge-base-platform';
import { Characteristic, Service } from 'homebridge';
export declare abstract class SoundTouchVolume {
    protected readonly device: SoundTouchDevice;
    protected readonly accessoryWrapper: HomebridgeAccessoryWrapper<SoundTouchDevice> & DeviceOnOffListener;
    protected readonly service: Service;
    constructor(device: SoundTouchDevice, accessoryWrapper: HomebridgeAccessoryWrapper<SoundTouchDevice> & DeviceOnOffListener);
    protected abstract initService(): Service;
    abstract getVolumeCharacteristic(): Characteristic;
    abstract getMuteCharacteristic(): Characteristic;
    isNotMuted(): Promise<boolean>;
    unMuteDevice(unmute: boolean): Promise<boolean>;
    getVolume(): Promise<number>;
    setVolume(volume: number, updateCharacteristic?: boolean): Promise<boolean>;
    private secureVolume;
    protected volumeChange(change: {
        newValue: number;
        oldValue: number;
    }): void;
}
//# sourceMappingURL=sound-touch-volume.d.ts.map