import { Parameters, InitObject, DomoModule } from '../lib/module'; import { GenericDevice, DeviceType } from '../devices/genericDevice'; import { ConfigLoader } from '../lib/load'; export declare type ID = string; export declare type Event = 'startup' | 'change'; export declare class message { emitter: GenericDevice; id: ID; oldValue: string; newValue: string; date: Date; state?: string; dev?: string; tem?: string; } export declare abstract class Source/* extends events.EventEmitter */ implements DomoModule { private eventEmitter; private devicesByAttribute; private devicesByPath; path: string; debugMode: boolean; type: string; private discoveredDevices; private tracer; debugModeLogger: { info: (...data: any[]) => void; warn: (...data: any[]) => void; warning: (...data: any[]) => void; error: (...data: any[]) => void; }; logger: { info: (...data: any[]) => void; warn: (...data: any[]) => void; warning: (...data: any[]) => void; error: (...data: any[]) => void; }; constructor(path: string); abstract createInstance(configLoader: ConfigLoader, path: string, initObject: InitObject): Source; abstract getParameters(): Parameters; abstract doSetAttribute(id: string, attribute: string, value: string, callback: (err: Error) => void): void; release(): void; setDebugMode(debug: boolean): void; getDevices(attribute: string, id: string): GenericDevice[]; addDevice(device: GenericDevice): void; releaseDevice(device: GenericDevice): void; updateAttribute(id: ID, attribute: string, value: string, lastUpdateDate?: Date): void; setAttribute(id: ID, attribute: string, value: string, callback: (err: Error) => void): void; isAttributeSupported(id: ID, attribute: string): GenericDevice[]; private static supportedDeviceTypes; static registerDeviceType(source: new (...args: any[]) => S, deviceType: DeviceType, parameters: Parameters): void; static deregisterDeviceType(source: new (...args: any[]) => S, deviceType: DeviceType): void; static deregisterDeviceTypes(source: new (...args: any[]) => S): void; getDeviceParameters(type: string): Parameters; emitEvent(event: Event, path: string, arg: any): void; on(event: string | symbol, listener: (...args: any[]) => void): this; on(event: Event, path: string, listener: (msg: message) => void): this; once(event: string | symbol, listener: (...args: any[]) => void): this; once(event: Event, path: string, listener: (msg: message) => void): this; removeListener(event: string | symbol, listener: (...args: any[]) => void): this; removeListener(event: Event, path: string, listener: (msg: message) => void): this; } export declare class DefaultSource extends Source { constructor(); createInstance(configLoader: ConfigLoader, id: string, initObject: InitObject): Source; getParameters(): Parameters; doSetAttribute(id: string, attribute: string, value: string, callback: (err: Error) => void): void; }