UNPKG

lavva.exalushome

Version:

Library implementing communication and abstraction layers for ExalusHome system

126 lines (125 loc) 5.56 kB
import { Status } from "../../DataFrame"; import { DeviceResponseType } from "../Devices/IDevice"; import { IDeviceStateData } from "../Devices/IDeviceState"; import { IDeviceTask } from "../Devices/IDeviceTask"; import { ResponseResult } from "../FieldChangeResult"; import { IScenesService, ScenesServiceErrorCode } from "./IScenesService"; import { ArgumentType, ConditionsTypes, HandledType, ISequence, ISequenceInfo, ILeftArgument, LeftArgumentTypes, ISequenceTasks, IRawSequence, ScenesUtils, ISceneTask, SceneTasks, SceneTaskType, ScenesUsedIn, SupportedTaskTypes } from "./Scenes"; import { SequenceBuilder, SequenceRequestData } from "./ScenesBuilder"; /** * @type Class */ export declare class ScenesService implements IScenesService { static readonly ServiceName: string; private _connection; private _configurationService; constructor(); GetServiceName(): string; GetSequencesListAsync(): Promise<ResponseResult<ScenesServiceErrorCode> | ISequenceInfo[]>; GetSequenceAsync(sequenceInfo: ISequenceInfo): Promise<ResponseResult<ScenesServiceErrorCode> | (ISequence & IRawSequence)>; GetSequenceAsync(sequenceGuid: string): Promise<ResponseResult<ScenesServiceErrorCode> | (ISequence & IRawSequence)>; GetSequenceBuilder(newSequenceName: string, newSequenceIcon: string): SequenceBuilder; GetSequenceBuilder(newSequenceName: string): SequenceBuilder; GetSequenceBuilder(): SequenceBuilder; CreateSequenceAsync(sequence: SequenceRequestData): Promise<Status>; CheckIfSequenceIsUsedInAnotherSequenceAsync(sequenceInfo: ISequenceInfo): Promise<ScenesUsedIn | ResponseResult<ScenesServiceErrorCode>>; CheckIfSequenceIsUsedInAnotherSequenceAsync(sequenceGuid: string): Promise<ScenesUsedIn | ResponseResult<ScenesServiceErrorCode>>; DeleteSequenceAsync(sequenceInfo: ISequenceInfo): Promise<Status>; DeleteSequenceAsync(sequenceGuid: string): Promise<Status>; EditSequenceAsync(sequence: SequenceRequestData): Promise<Status>; EnableSequenceAsync(sequenceInfo: ISequenceInfo): Promise<Status>; EnableSequenceAsync(sequenceGuid: string): Promise<Status>; DisableSequenceAsync(sequenceInfo: ISequenceInfo): Promise<Status>; DisableSequenceAsync(sequenceGuid: string): Promise<Status>; RunSequenceAsync(sequenceInfo: ISequenceInfo): Promise<Status>; RunSequenceAsync(sequenceGuid: string): Promise<Status>; GetUtilsAsync(): Promise<ScenesUtils>; protected _parseLinearScaleToLux(linearScaleVal: number): number | undefined; protected _parseLuxToLinearScale(lux: number): number; protected SunCalculatorAsync(): Promise<{ GetSunRiseTime: () => Date; GetSunSetTime: () => Date; }>; protected MapSequence(rawSequenceResponse: any, ignoreRightArgument?: boolean): Sequence; /** * Functions map all nested right arguments recursively * @param arg * @returns */ protected MapRightArgument(arg: any, argType: ArgumentType): Sequence | null; /** * Function maps raw LeftArgument JSON to object-key typed parameters property * @param arg * @returns */ protected MapLeftArgument(arg: any, argType: ArgumentType): LeftArgument; /** * Function changes numeric based enum to string based enum, string enum is more user frienldy and is used for key of left argument typed property * @param argumentType * @returns */ protected MapArgumentType(argumentType: ArgumentTypeNum): ArgumentType; /** * Maps types of device state from Scenes extension state enum to general device states enum in library * @param stateType * @returns */ protected MapDeviceStateTypeToResponseType(stateType: number): DeviceResponseType; /** * Function converts device state from Scenes extension to general device states in library * @param argumentData * @param responseType * @returns */ protected CreateDeviceState<T extends IDeviceStateData>(argumentData: any, channel: number, responseType: DeviceResponseType): T; protected MapDeviceTask(rawTasks: any): IDeviceTask; protected MapControllerTasks(rawTasks: any[]): ControllerTasks[]; GetSupportedTaskTypesAsync(): Promise<SupportedTaskTypes[]>; } declare class Sequence implements ISequence, IRawSequence { _rawRequestData: SequenceRequestData; Tasks: ISequenceTasks; Guid: string; ObjectType: number; Name: string; Icon: string; AtMeetCondition: boolean; ExecuteOnce: boolean; IsDisabled: boolean; HandledType: HandledType; ConditionType: ConditionsTypes; ConditionTimeout: number; LeftArgumentType: ArgumentType; RightArgumentType: ArgumentType; LeftArgument: ILeftArgument; RightArgument: ISequence | null; get DoesHaveTriggers(): boolean; } declare class LeftArgument implements ILeftArgument { HandledType: ArgumentTypeNum; Argument: LeftArgumentTypes; } declare enum ArgumentTypeNum { Null = 0, Condition = 1, ConditionGroup = 2, ArgumentAsInt = 3, ArgumentAsTimeSpan = 4, ArgumentAsBoolean = 5, ArgumentAsTimeout = 6, ArgumentAsDayOfWeek = 7, ArgumentAsDaysOfWeek = 8, ArgumentAsAstronomicalClock = 9, ArgumentAsTime = 10, ArgumentAsDeviceState = 11, ArgumentAsNumber = 12, ArgumentAsAstronomicalClockWithOffset = 13, ArgumentAsConditionInfo = 14 } declare class ControllerTasks implements ISceneTask { TaskId: string; Guid: string; TaskType: SceneTaskType; Task: SceneTasks; } export {};