lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
126 lines (125 loc) • 5.56 kB
TypeScript
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 {};