import { AccessoryConfig, GlobalConfig, VolumeMode } from './accessory-config';
import { API } from 'soundtouch-api';
import { Logging } from "homebridge";
import { BaseDevice } from "homebridge-base-platform";
export interface SoundTouchPreset {
    readonly name: string;
    readonly index: number;
}
export interface SoundTouchSource {
    readonly name: string;
    readonly source: string;
    readonly account?: string;
    readonly enabled: boolean;
}
export interface SoundTouchVolumeSettings {
    readonly onValue: number;
    readonly maxValue: number;
    readonly unmuteValue: number;
    readonly mode: VolumeMode;
}
export interface SoundTouchDevice extends BaseDevice {
    readonly api: API;
    readonly model: string;
    readonly verbose: boolean;
    readonly pollingInterval?: number;
    readonly version?: string;
    readonly volumeSettings: SoundTouchVolumeSettings;
    readonly presets: SoundTouchPreset[];
    readonly sources: SoundTouchSource[];
}
export declare function searchAllDevices(globalConfig: GlobalConfig, accessoryConfigs: AccessoryConfig[], log: Logging): Promise<SoundTouchDevice[]>;
export declare function deviceFromConfig(globalConfig: GlobalConfig, accessoryConfig: AccessoryConfig, log: Logging): Promise<SoundTouchDevice>;
export interface DeviceOnOffListener {
    deviceDidTurnOff(updateOn?: boolean, updateVolume?: boolean): Promise<boolean>;
    deviceDidTurnOn(updateOn?: boolean, updateVolume?: boolean): Promise<boolean>;
}
export declare function deviceIsOn(device: SoundTouchDevice): Promise<boolean>;
//# sourceMappingURL=sound-touch-device.d.ts.map