/// <reference types="node" />
import { DeviceFactoryInterface, DeviceInterface } from './DeviceTypes';
import { EventEmitter } from 'events';
import { DeviceConfiguration, DeviceViewModel } from '../../common/DeviceTypes';
import { ConfigManager } from '../ConfigManager';
import { LogManager } from '../LogManager';
export declare class DeviceManager extends EventEmitter {
    private factories;
    private devices;
    private config;
    private logger;
    static Events: {
        DevicesChanged: string;
        DeviceStatusChanged: string;
    };
    constructor(config: ConfigManager, logger: LogManager, factories?: DeviceFactoryInterface[]);
    addFactory(factory: DeviceFactoryInterface): void;
    createDevice(config: DeviceConfiguration): DeviceInterface | undefined;
    getDevice(id: string): DeviceInterface | undefined;
    getDevices(): DeviceViewModel[];
    deleteDevice(id: string): void;
    convertToViewModel(device: DeviceInterface): DeviceViewModel;
    private onConfigLoaded;
    private addDevice;
    private saveConfig;
}
