/// /// /// /// import 'source-map-support/register'; import * as dgram from 'dgram'; import { EventEmitter } from 'events'; import * as net from 'net'; import * as SLGateway from './messages/SLGatewayDataMessage'; import { BodyCommands, ChemCommands, ChlorCommands, CircuitCommands, ConnectionCommands, EquipmentCommands, PumpCommands, ScheduleCommands } from './messages/OutgoingMessages'; import { SLVersionData } from './messages/ConnectionMessage'; import { SLCircuitNamesData, SLControllerConfigData, SLEquipmentConfigurationData, SLGetCustomNamesData, SLHistoryData, SLWeatherForecastData } from './messages/config/EquipmentConfig'; import { SLIntellichlorData } from './messages/state/ChlorMessage'; import { SLChemData, SLChemHistory } from './messages/state/ChemMessage'; import { SLScheduleData } from './messages/config/ScheduleMessage'; import { SLPumpStatusData } from './messages/state/PumpMessage'; import { Inbound, SLMessage, SLSimpleBoolData, SLSimpleNumberData } from './messages/SLMessage'; import { SLEquipmentStateData, SLSystemTimeData } from './messages/state/EquipmentState'; export * from './messages/config/ScheduleMessage'; export * from './messages/config/EquipmentConfig'; export * from './messages/config/CircuitMessage'; export * from './messages/config/HeaterMessage'; export * from './messages/state/ChemMessage'; export * from './messages/state/ChlorMessage'; export * from './messages/state/PumpMessage'; export * from './messages/state/EquipmentState'; export * from './messages/ConnectionMessage'; export * from './messages/OutgoingMessages'; export * from './messages/SLGatewayDataMessage'; export * from './messages/SLMessage'; export declare class FindUnits extends EventEmitter { constructor(); private finder; private bound; private message; search(): void; searchAsync(searchTimeMs?: number): Promise; foundServer(msg: Buffer, remote: dgram.RemoteInfo): void; sendServerBroadcast(): void; close(): void; } export declare class RemoteLogin extends EventEmitter { constructor(systemName: string); systemName: string; private _client; private _gateway; connectAsync(): Promise; closeAsync(): Promise; } export declare class UnitConnection extends EventEmitter { constructor(); systemName: string; private serverPort; private serverAddress; private password; protected client: net.Socket; private isConnected; private _clientId; get clientId(): number; set clientId(val: number); private _controllerId; get controllerId(): number; set controllerId(val: number); static controllerType: number; static expansionsCount: number; protected _isMock: boolean; protected _hasAddedClient: boolean; private _buffer; private _bufferIdx; private _senderId; get senderId(): number; set senderId(val: number); controller: Controller; netTimeout: number; private _keepAliveDuration; private _keepAliveTimer; private _expectedMsgLen; circuits: Circuit; equipment: Equipment; bodies: Body; chem: Chem; chlor: Chlor; schedule: Schedule; pump: Pump; reconnectAsync: () => Promise; initMock(systemName: string, address: string, port: number, password: string, senderId?: number): void; init(systemName: string, address: string, port: number, password?: string, senderId?: number): void; initUnit(server: LocalUnit): void; private _initCommands; write(bytes: Buffer | string): void; readMockBytesAsString(hexStr: string): void; keepAliveAsync(): void; processData(msg: Buffer): void; toLogEmit(message: SLMessage, direction: string): void; closeAsync(): Promise; connectAsync(): Promise; loginAsync(challengeString: string, senderId?: number): Promise; bytesRead(): number; bytesWritten(): number; status(): { destroyed: boolean; connecting: boolean; readyState: string; timeout?: undefined; } | { destroyed: boolean; connecting: boolean; timeout: number; readyState: net.SocketReadyState; }; getVersionAsync(senderId?: number): Promise; addClientAsync(clientId?: number, senderId?: number): Promise; removeClientAsync(clientId?: number, senderId?: number): Promise; pingServerAsync(senderId?: number): Promise; onClientMessage(msg: Inbound): void; } export declare const screenlogic: UnitConnection; export declare class Equipment { protected unit: UnitConnection; constructor(parent: UnitConnection); setSystemTimeAsync(date: Date, shouldAdjustForDST: boolean, senderId?: number): Promise; getWeatherForecastAsync(senderId?: number): Promise; getHistoryDataAsync(fromTime?: Date, toTime?: Date, senderId?: number): Promise; getAllCircuitNamesAsync(senderId?: number): Promise; getNCircuitNamesAsync(senderId?: number): Promise; getCircuitNamesAsync(size: number, senderId?: number): Promise; getCircuitDefinitionsAsync(senderId?: number): Promise; getEquipmentConfigurationAsync(senderId?: number): Promise; cancelDelayAsync(senderId?: number): Promise; getSystemTimeAsync(senderId?: number): Promise; getControllerConfigAsync(senderId?: number): Promise; getEquipmentStateAsync(senderId?: number): Promise; getCustomNamesAsync(senderId?: number): Promise; setCustomNameAsync(idx: number, name: string, senderId?: number): Promise; } export declare class Circuit { protected unit: UnitConnection; constructor(parent: UnitConnection); sendLightCommandAsync(command: LightCommands, senderId?: number): Promise; setCircuitRuntimebyIdAsync(circuitId: number, runTime?: number, senderId?: number): Promise; setCircuitAsync(circuitId: number, nameIndex: number, circuitFunction: number, circuitInterface: number, freeze: boolean, colorPos: number, senderId?: number): Promise; setCircuitStateAsync(circuitId: number, circuitState: boolean, senderId?: number): Promise; } export declare class Body { protected unit: UnitConnection; constructor(parent: UnitConnection); setSetPointAsync(bodyIndex: BodyIndex, temperature: number, senderId?: number): Promise; setCoolSetPointAsync(bodyIndex: BodyIndex, temperature: number, senderId?: number): Promise; setHeatModeAsync(bodyIndex: BodyIndex, heatMode: HeatModes, senderId?: number): Promise; } export declare class Pump { protected unit: UnitConnection; constructor(parent: UnitConnection); setPumpSpeedAsync(pumpId: number, circuitId: number, speed: number, isRPMs?: boolean, senderId?: number): Promise; getPumpStatusAsync(pumpId: number, senderId?: number): Promise; } export declare class Schedule { protected unit: UnitConnection; constructor(parent: UnitConnection); setScheduleEventByIdAsync(scheduleId: number, circuitId: number, startTime: number, stopTime: number, dayMask: number, flags: number, heatCmd: number, heatSetPoint: number, senderId?: number): Promise; addNewScheduleEventAsync(scheduleType: SchedTypes, senderId?: number): Promise; deleteScheduleEventByIdAsync(scheduleId: number, senderId?: number): Promise; getScheduleDataAsync(scheduleType: SchedTypes, senderId?: number): Promise; } export declare class Chem { protected unit: UnitConnection; constructor(parent: UnitConnection); getChemHistoryDataAsync(fromTime?: Date, toTime?: Date, senderId?: number): Promise; getChemicalDataAsync(senderId?: number): Promise; } export declare class Chlor { protected unit: UnitConnection; constructor(parent: UnitConnection); setIntellichlorOutputAsync(poolOutput: number, spaOutput: number, senderId?: number): Promise; getIntellichlorConfigAsync(senderId?: number): Promise; setIntellichlorIsActiveAsync(isActive: boolean, senderId?: number): Promise; } export declare enum LightCommands { LIGHT_CMD_LIGHTS_OFF = 0, LIGHT_CMD_LIGHTS_ON = 1, LIGHT_CMD_COLOR_SET = 2, LIGHT_CMD_COLOR_SYNC = 3, LIGHT_CMD_COLOR_SWIM = 4, LIGHT_CMD_COLOR_MODE_PARTY = 5, LIGHT_CMD_COLOR_MODE_ROMANCE = 6, LIGHT_CMD_COLOR_MODE_CARIBBEAN = 7, LIGHT_CMD_COLOR_MODE_AMERICAN = 8, LIGHT_CMD_COLOR_MODE_SUNSET = 9, LIGHT_CMD_COLOR_MODE_ROYAL = 10, LIGHT_CMD_COLOR_SET_SAVE = 11, LIGHT_CMD_COLOR_SET_RECALL = 12, LIGHT_CMD_COLOR_BLUE = 13, LIGHT_CMD_COLOR_GREEN = 14, LIGHT_CMD_COLOR_RED = 15, LIGHT_CMD_COLOR_WHITE = 16, LIGHT_CMD_COLOR_PURPLE = 17 } export declare enum HeatModes { HEAT_MODE_OFF = 0, HEAT_MODE_SOLAR = 1, HEAT_MODE_SOLARPREFERRED = 2, HEAT_MODE_HEATPUMP = 3, HEAT_MODE_HEATER = 3, HEAT_MODE_DONTCHANGE = 4 } export declare enum PumpTypes { Invalid = 0, PUMP_TYPE_INTELLIFLOVF = 5, PUMP_TYPE_INTELLIFLOVS = 3, PUMP_TYPE_INTELLIFLOVSF = 4 } export declare enum BodyIndex { POOL = 0, SPA = 1 } export interface Controller { circuits: CircuitCommands; connection: ConnectionCommands; equipment: EquipmentCommands; chlor: ChlorCommands; chem: ChemCommands; schedules: ScheduleCommands; pumps: PumpCommands; bodies: BodyCommands; } export declare enum SchedTypes { RECURRING = 0, RUNONCE = 1 } export interface LocalUnit { address: string; type: number; port: number; gatewayType: number; gatewaySubtype: number; gatewayName: string; }