import { Status } from "../../DataFrame"; import { IDIService } from "../../IDIService"; import { ResponseResult } from "../FieldChangeResult"; import { IRawSequence, ISequence, ISequenceInfo, ScenesUsedIn, ScenesUtils, SupportedTaskTypes } from "./Scenes"; import { SequenceBuilder, SequenceRequestData } from "./ScenesBuilder"; export interface IScenesService extends IDIService { /** * Returns list of sequences available in controller. */ GetSequencesListAsync(): Promise>; /** * Returns details of given sequence * @param sequenceInfo sequence info - method GetSequencesListAsync returns this object. */ GetSequenceAsync(sequenceInfo: ISequenceInfo): Promise<(ISequence & IRawSequence) | ResponseResult>; GetSequenceAsync(sequenceGuid: string): Promise<(ISequence & IRawSequence) | ResponseResult>; /** * Function returns helper for sequence creation, you need to pass sequence name and icon, rest of settings can be set in builder. * @param newSequenceName new sequence name * @param newSequenceIcon new sequence icon */ GetSequenceBuilder(newSequenceName: string, newSequenceIcon: string): SequenceBuilder; GetSequenceBuilder(newSequenceName: string): SequenceBuilder; GetSequenceBuilder(): SequenceBuilder; /** * Creates sequence in controller, first you nedd to generate sequence using SequenceBuilder. * @param sequence sequence generated from SequenceBuilder */ CreateSequenceAsync(sequence: SequenceRequestData): Promise; /** * Function check if given sequence is used in another sequences (as task or as argument) * This function should be call before deleting sequence to inform user that removing given sequence coud have inpact to scenes logic * @param sequenceInfo */ CheckIfSequenceIsUsedInAnotherSequenceAsync(sequenceInfo: ISequenceInfo): Promise>; CheckIfSequenceIsUsedInAnotherSequenceAsync(sequenceGuid: string): Promise>; /** * Delete sequence from controller * @param sequenceInfo */ DeleteSequenceAsync(sequenceInfo: ISequenceInfo): Promise; DeleteSequenceAsync(sequenceGuid: string): Promise; /** * Editing sequence in controller, first you nedd to make changes in sequence using SequenceBuilder. * @param sequence */ EditSequenceAsync(sequence: SequenceRequestData): Promise; /** * Activate sequence (turns on) * @param sequenceInfo */ EnableSequenceAsync(sequenceInfo: ISequenceInfo): Promise; EnableSequenceAsync(sequenceGuid: string): Promise; /** * Deactivate sequence (turns off) * @param sequenceInfo */ DisableSequenceAsync(sequenceInfo: ISequenceInfo): Promise; DisableSequenceAsync(sequenceGuid: string): Promise; /** * Runs sequence * @param sequenceInfo */ RunSequenceAsync(sequenceInfo: ISequenceInfo): Promise; RunSequenceAsync(sequenceGuid: string): Promise; /** * Returns additional functions to assist in the context of scenario building */ GetUtilsAsync(): Promise; GetSupportedTaskTypesAsync(): Promise; } export declare enum ScenesServiceErrorCode { OtherError = "OtherError", FatalError = "FatalError", NoData = "NoData", InvalidSceneGuid = "InvalidSceneGuid" }