/// <reference types="node" />
import { DeviceFactoryInterface, DeviceInterface } from './DeviceTypes';
import { DeviceConfiguration, DeviceStatus, DeviceActionsInterface } from '../../common/DeviceTypes';
import { LogManager } from '../LogManager';
import { EventEmitter } from 'events';
export declare class CompanionDeviceFactory implements DeviceFactoryInterface {
    private logger;
    constructor(logger: LogManager);
    getType(): string;
    create(config: DeviceConfiguration): DeviceInterface | undefined;
}
export declare class CompanionDevice extends EventEmitter implements DeviceInterface {
    private config;
    private logger;
    private client;
    private status;
    constructor(config: DeviceConfiguration, logger: LogManager);
    private initConnection;
    private setStatus;
    getConfig(): DeviceConfiguration;
    updateConfig(config: DeviceConfiguration): void;
    connect(): void;
    disconnect(): void;
    getStatus(): DeviceStatus;
    getConnected(): boolean;
    getActions(): DeviceActionsInterface;
    getParams(): {};
    trigger(actionId: string, edge: number, params: any): void;
    addHandler(_handlerId: string, _action: string, _params: any, _handler: (value: number) => void): void;
    removeHandler(_handlerId: string): void;
    destroy(): void;
}
