/// import { EventEmitter } from 'events'; import { Enum } from './lib/ServerStateEnum'; import { IConnectionOptions, ConnectionOptions, Options as OptionsNS } from './lib/AMCPConnectionOptions'; import QueueMode = OptionsNS.QueueMode; import CasparCGVersion = OptionsNS.CasparCGVersion; import { Command as CommandNS } from './lib/AbstractCommand'; import IAMCPCommand = CommandNS.IAMCPCommand; import { Param as ParamNS } from './lib/ParamSignature'; import Param = ParamNS.Param; import TemplateData = ParamNS.TemplateData; import { SocketStatusOptions } from './lib/event/Events'; import { Callback as CallbackNS } from './lib/global/Callback'; import IBooleanCallback = CallbackNS.IBooleanCallback; import IErrorCallback = CallbackNS.IErrorCallback; import IStringCallback = CallbackNS.IStringCallback; import ISocketStatusCallback = CallbackNS.ISocketStatusCallback; import { Config as ConfigNS } from './lib/Config'; import CasparCGConfig = ConfigNS.Intermediate.CasparCGConfig; import { Response as ResponseNS } from './lib/ResponseParsers'; import CasparCGPaths = ResponseNS.CasparCGPaths; export declare enum Priority { LOW = 0, NORMAL = 1, HIGH = 2 } /** * CasparCG Protocols */ export declare namespace CasparCGProtocols { /** * CasparCG Protocol version 2.1 */ namespace v2_1 { /** * AMCP Media-commands */ interface IVideo { loadbg(channel: number, layer: number, clip: string, loop?: boolean, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, seek?: number, length?: number, filter?: string, auto?: boolean | number | string): Promise; loadbgAuto(channel: number, layer: number, clip: string, loop?: boolean, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, seek?: number, length?: number, filter?: string): Promise; load(channel: number, layer: number, clip: string, loop?: boolean, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, seek?: number, length?: number, filter?: string): Promise; play(channel: number, layer?: number, clip?: string, loop?: boolean, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, seek?: number, length?: number, filter?: string): Promise; pause(channel: number, layer?: number): Promise; resume(channel: number, layer?: number): Promise; stop(channel: number, layer?: number): Promise; } /** * AMCP In/Out-commands */ interface IInputOutput { loadDecklinkBg(channel: number, layer: number, device: number, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string, auto?: boolean | number | string): Promise; loadDecklinkBgAuto(channel: number, layer: number, device: number, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string): Promise; loadDecklink(channel: number, layer: number, device: number, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string): Promise; playDecklink(channel: number, layer?: number, device?: number, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string): Promise; loadHtmlPageBg(channel: number, layer: number, url: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, seek?: number, length?: number, filter?: string, auto?: boolean | number | string): Promise; loadHtmlPageBgAuto(channel: number, layer: number, url: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string): Promise; loadHtmlPage(channel: number, layer: number, url: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string): Promise; playHtmlPage(channel: number, layer?: number, url?: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string): Promise; } /** * AMCP Template-commands */ interface ICG { cgAdd(channel: number, layer: number, flashLayer: number, templateName: string, playOnLoad: boolean | number | string, data?: TemplateData): Promise; cgPlay(channel: number, layer: number, flashLayer: number): Promise; cgStop(channel: number, layer: number, flashLayer: number): Promise; cgNext(channel: number, layer: number, flashLayer: number): Promise; cgRemove(channel: number, layer: number, flashLayer: number): Promise; cgClear(channel: number, layer?: number): Promise; cgUpdate(channel: number, layer: number, flashLayer: number, data: TemplateData): Promise; cgInvoke(channel: number, layer: number, flashLayer: number, methodName: string): Promise; } /** * AMCP Mixer-commands */ interface IMixer { mixerKeyer(channel: number, layer?: number, state?: number | boolean, defer?: boolean): Promise; mixerKeyerDeferred(channel: number, layer?: number, state?: number | boolean): Promise; getMixerStatusKeyer(channel: number, layer?: number): Promise; mixerChroma(channel: number, layer?: number, keyer?: Enum.Chroma | string, threshold?: number, softness?: number, spill?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerChromaDeferred(channel: number, layer?: number, keyer?: Enum.Chroma | string, threshold?: number, softness?: number, spill?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusChroma(channel: number, layer?: number): Promise; mixerBlend(channel: number, layer?: number, blendmode?: Enum.BlendMode | string, defer?: boolean): Promise; mixerBlendDeferred(channel: number, layer?: number, blendmode?: Enum.BlendMode | string): Promise; getMixerStatusBlend(channel: number, layer?: number): Promise; mixerOpacity(channel: number, layer?: number, opacity?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerOpacityDeferred(channel: number, layer?: number, opacity?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusOpacity(channel: number, layer?: number): Promise; mixerBrightness(channel: number, layer?: number, brightness?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerBrightnessDeferred(channel: number, layer?: number, brightness?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusBrightness(channel: number, layer?: number): Promise; mixerSaturation(channel: number, layer?: number, saturation?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerSaturationDeferred(channel: number, layer?: number, saturation?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusSaturation(channel: number, layer?: number): Promise; mixerBrightness(channel: number, layer?: number, contrast?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerContrastDeferred(channel: number, layer?: number, contrast?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusContrast(channel: number, layer?: number): Promise; mixerLevels(channel: number, layer?: number, minInput?: number, maxInput?: number, gamma?: number, minOutput?: number, maxOutput?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerLevelsDeferred(channel: number, layer?: number, minInput?: number, maxInput?: number, gamma?: number, minOutput?: number, maxOutput?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusLevels(channel: number, layer?: number): Promise; mixerFill(channel: number, layer?: number, x?: number, y?: number, xScale?: number, yScale?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerFillDeferred(channel: number, layer?: number, x?: number, y?: number, xScale?: number, yScale?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusFill(channel: number, layer?: number): Promise; mixerClip(channel: number, layer?: number, x?: number, y?: number, width?: number, height?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerClipDeferred(channel: number, layer?: number, x?: number, y?: number, width?: number, height?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusClip(channel: number, layer?: number): Promise; mixerAnchor(channel: number, layer?: number, x?: number, y?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerAnchorDeferred(channel: number, layer?: number, x?: number, y?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusAnchor(channel: number, layer?: number): Promise; mixerCrop(channel: number, layer?: number, left?: number, top?: number, right?: number, bottom?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerCropDeferred(channel: number, layer?: number, left?: number, top?: number, right?: number, bottom?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusCrop(channel: number, layer?: number): Promise; mixerRotation(channel: number, layer?: number, rotation?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerRotationDeferred(channel: number, layer?: number, rotation?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusRotation(channel: number, layer?: number): Promise; mixerPerspective(channel: number, layer?: number, topLeftX?: number, topLeftY?: number, topRightX?: number, topRightY?: number, bottomRightX?: number, bottomRightY?: number, bottomLeftX?: number, bottomLeftY?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerPerspectiveDeferred(channel: number, layer?: number, topLeftX?: number, topLeftY?: number, topRightX?: number, topRightY?: number, bottomRightX?: number, bottomRightY?: number, bottomLeftX?: number, bottomLeftY?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusPerspective(channel: number, layer?: number): Promise; mixerMipmap(channel: number, layer?: number, state?: number | boolean, defer?: boolean): Promise; mixerMipmapDeferred(channel: number, layer?: number, state?: number | boolean): Promise; getMixerStatusMipmap(channel: number, layer?: number): Promise; mixerVolume(channel: number, layer?: number, volume?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerVolumeDeferred(channel: number, layer?: number, volume?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; getMixerStatusVolume(channel: number, layer?: number): Promise; mixerMastervolume(channel: number, mastervolume?: number, defer?: boolean): Promise; mixerMastervolumeDeferred(channel: number, mastervolume?: number): Promise; getMixerStatusMastervolume(channel: number, layer?: number): Promise; mixerStraightAlphaOutput(channel: number, layer?: number, state?: number | boolean, defer?: boolean): Promise; mixerStraightAlphaOutputDeferred(channel: number, layer?: number, state?: number | boolean): Promise; getMixerStatusStraightAlphaOutput(channel: number, layer?: number): Promise; mixerGrid(channel: number, resolution: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerGridDeferred(channel: number, resolution: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; mixerCommit(channel: number): Promise; mixerClear(channel: number, layer?: number): Promise; } /** * AMCP Channel-commands */ interface IChannel { clear(channel: number, layer?: number): Promise; print(channel: number): Promise; lock(channel: number, action: Enum.Lock | string, lockPhrase?: string): Promise; channelGrid(): Promise; glGC(): Promise; addDecklink(channel: number, device: number, id?: number): Promise; addImage(channel: number, fileName: string, id?: number): Promise; addFile(channel: number, fileName: string, id?: number): Promise; addStream(channel: number, uri: string, params: string, id?: number): Promise; remove(channel: number, id: number): Promise; removeDecklink(channel: number, device: number): Promise; removeImage(channel: number, fileName: string): Promise; removeFile(channel: number, fileName: string): Promise; removeStream(channel: number, uri: string): Promise; } /** * AMCP Template Data-commands */ interface IData { dataStore(fileName: string, data: TemplateData): Promise; dataRetrieve(fileName: string): Promise; dataList(): Promise; dataRemove(fileName: string): Promise; } /** * AMCP Thumbnail-commands */ interface IThumbnail { thumbnailList(subFolder?: string): Promise; thumbnailRetrieve(fileName: string): Promise; thumbnailGenerate(fileName: string): Promise; thumbnailGenerateAll(): Promise; } /** * AMCP Query-commands */ interface IQuery { cinf(fileName: string): Promise; cls(subFolder?: string): Promise; fls(): Promise; tls(subFolder?: string): Promise; version(component?: Enum.Version): Promise; info(channel?: number, layer?: number): Promise; infoTemplate(template: string): Promise; infoConfig(): Promise; infoPaths(): Promise; infoSystem(): Promise; infoServer(): Promise; infoQueues(): Promise; infoThreads(): Promise; infoDelay(channel: number, layer?: number): Promise; cgInfo(channel: number, layer?: number, flashLayer?: number): Promise; templateHostInfo(channel: number, layer?: number): Promise; glInfo(): Promise; logLevel(level: Enum.LogLevel | string): Promise; logCategory(category: Enum.LogCategory | string, enabled: boolean): Promise; logCalltrace(enabled: boolean): Promise; logCommunication(enabled: boolean): Promise; diag(): Promise; help(command?: Enum.Command | string): Promise; getCommands(): Promise; helpProducer(producer?: Enum.Producer | string): Promise; getProducers(): Promise; helpConsumer(consumer?: Enum.Consumer | string): Promise; getConsumers(): Promise; } /** * AMCP Operation-commands */ interface IOperation { bye(): Promise; kill(): Promise; restart(): Promise; } interface AMCP extends IVideo, IInputOutput, ICG, IMixer, IChannel, IData, IThumbnail, IQuery, IOperation { } } } /** * CasparCG Interface */ export interface ICasparCGConnection { connectionOptions: ConnectionOptions; connected: boolean; connectionStatus: SocketStatusOptions; readonly commandQueueLength: number; getCasparCGConfig(refresh: boolean): Promise; getCasparCGPaths(refresh: boolean): Promise; getCasparCGVersion(refresh: boolean): Promise; removeQueuedCommand(id: string): boolean; connect(options?: IConnectionOptions): void; disconnect(): void; createCommand(command: IAMCPCommand): IAMCPCommand | undefined; createCommand(commandString: string, ...params: (string | Param)[]): IAMCPCommand | undefined; queueCommand(command: IAMCPCommand, priority: Priority): Promise; do(command: IAMCPCommand): Promise; do(commandString: string, ...params: (string | Param)[]): Promise; doNow(command: IAMCPCommand): Promise; doNow(commandString: string, ...params: (string | Param)[]): Promise; doLater(command: IAMCPCommand): Promise; doLater(commandString: string, ...params: (string | Param)[]): Promise; } /** * The main object and entrypoint for all interactions. `CasparCG` allows for flexible configuration, re-configuration and events/callbacks. * It implements all [[AMCP]] commands as high-level methods with convenient interfaces. * * There is a single [[CasparCGSocket]] pr. `CasparCG` object. * `CasparCG` should be the only public interface to interact directly with. */ export declare class CasparCG extends EventEmitter implements ICasparCGConnection, ConnectionOptions, CasparCGProtocols.v2_1.AMCP { /** * Try to connect upon creation. */ autoConnect: boolean | undefined; /** * Setting this to true will investigate all connections to assess if the server is freshly booted, or have been used before the connection */ virginServerCheck: boolean | undefined; /** * Setting this to true will print out logging to the `Console`, in addition to the optinal [[onLog]] and [[LogEvent.LOG]] */ debug: boolean | undefined; /** * Callback for all logging. */ onLog: IStringCallback | undefined; /** * Callback for all status updates from the `CasparCGSocket`. */ onConnectionStatus: ISocketStatusCallback | undefined; /** * Callback for status updates from the `CasparCGSocket` if the `connected` property changes value. */ onConnectionChanged: IBooleanCallback | undefined; /** * Callback for status updates from the `CasparCGSocket` if the `connected` property is set to `true`. */ onConnected: IBooleanCallback | undefined; /** * Callback for status updates from the `CasparCGSocket` if the `connected` property is set to `false`. */ onDisconnected: IBooleanCallback | undefined; /** * Callback for general errors */ onError: IErrorCallback | undefined; /** * @todo: document */ private _queueMode; private _connected; private _host; private _port; private _autoReconnect; private _autoReconnectInterval; private _autoReconnectAttempts; private _socket; private _queuedCommands; private _queuedCommandsLowPriority; private _queuedCommandsHighPriority; private _sentCommands; private _configPromise; private _pathsPromise; private _versionPromise; private _userConfigServerVersion; /** * If the constructor gets called with no parameters, all properties of the CasparCG object will match all default properties defined by [[IConnectionOptions]]. * * ``` * var con = new CasparCG(); * // host = 127.0.0.1, port = 5250, autoConnect = true ... * * con.play(1, 1, "amb"); * // you can interact with the server, but you have no knowledge of the conenction status until the onConnect event- or callback gets invoked * // the `PlayCommand` will however be queued and fired when the connection gets established * con.close(); * ``` * * @param host Defaults to `IConnectionOptions.host` * @param port Defaults to `IConnectionOptions.host` * @param options An object with combination of properties defined by `IConnectionOptions`. All properties not explicitly set will fall back to the defaults defined by `IConnectionOptions`. * * All callbacks including [[onConnected]] will be set prior trying to establish connection, so the `CasparCG` object will give back all events even if [[CasparCG.autoConnect]] is `true`. * * You can optionally set the host and port directly in the constructor: * * ``` * var con = new CasparCG("192.168.0.1", 5251); * // host = 192.168.0.1, port = 5251, autoConnect = true ... * * // change properties after the constructor * con.debug = true; * * con.play(1, 1, "amb"); * con.close(); * ``` * */ constructor(host?: string, port?: number); /** * Callbacks and events after constructor: * * ``` * var con = new CasparCG({host: "192.168.0.1", autoConnect: false}); * // host = 192.168.0.1, port = 5250, autoConnect = false ... * * // add onLog callback after constructor * con.onLog = function(logMessage){ console.log(logMessage); }; * * // add eventlistener to the conenction event before connecting * con.on(CasparCGSocketStatusEvent.CONNECTED, onConnection(event)); * * con.connect(); * ``` * Callback in constructor: * * ``` * var con = new CasparCG({host: "192.168.0.1", onConnect: onConnectedCallback}); * // Connection callbacks can be set in the constructor and will be registered before autoConnect invokes. * // This ensures that you recieve all callbacks * ``` * Inline function syntax: * * ``` * var con = new CasparCG({host: "192.168.0.1", onConnect: function(connected) { * // do something once we get connected * console.log("Are we conencted?", connected) * } * }); * ``` * Inline fat arrow syntax: * * ``` * var con = new CasparCG({host: "192.168.0.1", onConnect: (connected) => { * // do something once we get connected * ("Are we conencted?", connected) * } * }); * ``` * */ constructor(options: IConnectionOptions); /** * Creates a new [[CasparCGSocket]] and connects. * * @param options Setting new [[ICasparCGConnection]] properties will override each individual property allready defined on the `CasparCG` object. Existing properties not overwritten by this `options` object will remain. */ connect(options?: IConnectionOptions): void; /** * Disconnects and disposes the [[CasparCGSocket]] connection. */ disconnect(): void; /** * */ reconnect(): void; /** * */ /** * Setting the `host` will create a new [[CasparCGSocket]] connection. * * The new `CasparCGSocket` will `autoConnect` if the old socket was either successfully connected, or currently reconnecting. Changing the host resets the number of [[CasparCG.autoReconnectAttempts]]. */ host: string; /** * */ /** * Setting the `port` will create a new [[CasparCGSocket]] connection. * * The new `CasparCGSocket` will `autoConnect` if the old socket was either successfully connected, or currently reconnecting. Changing the host resets the number of [[CasparCG.autoReconnectAttempts]]. */ port: number; /** * Try to reconnect in case of unintentionally loss of connection, or in case of failed connection in the first place. */ /** * */ autoReconnect: boolean; /** * Timeout in milliseconds between each connection attempt during reconnection. */ /** * */ autoReconnectInterval: number; /** * Max number of attempts of connection during reconnection. This value resets once the reconnection is over (either in case of successfully reconnecting, changed connection properties such as `host` or `port` or by being manually cancelled). */ /** * */ autoReconnectAttempts: number; /** * */ readonly connectionOptions: ConnectionOptions; /** * */ readonly connected: boolean; /** * */ readonly connectionStatus: SocketStatusOptions; /** * */ /** * */ serverVersion: CasparCGVersion | undefined; queueMode: QueueMode; /** * */ readonly commandQueueLength: number; /** * @todo implement * @todo document */ do(command: IAMCPCommand): Promise; do(commandString: string, ...params: (string | Param)[]): Promise; /** * @todo implement * @todo document */ doNow(command: IAMCPCommand): Promise; doNow(commandString: string, ...params: (string | Param)[]): Promise; /** * @todo implement * @todo document */ doLater(command: IAMCPCommand): Promise; doLater(commandString: string, ...params: (string | Param)[]): Promise; /** * */ createCommand(commandOrString: (IAMCPCommand | string), ...params: (string | Param)[]): IAMCPCommand | undefined; /** * */ queueCommand(command: IAMCPCommand, priority?: Priority): Promise; /** * @todo: document */ removeQueuedCommand(id: string): boolean; /***/ getCasparCGConfig(refresh?: boolean): Promise; /***/ getCasparCGPaths(refresh?: boolean): Promise; /***/ getCasparCGVersion(refresh?: boolean): Promise; /** * */ loadbg(channel: number, layer: number, clip: string, loop?: boolean, transition?: Enum.Transition, transitionDuration?: number, transitionEasing?: Enum.Ease | string, transitionDirection?: Enum.Direction | string, seek?: number, length?: number, filter?: string, auto?: boolean | number | string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; loadbg(channel: number, layer: number, clip: string, loop?: boolean, transition?: string, transitionMaskFile?: string, transitionStingDuration?: number, transitionOverlay?: string, seek?: number, length?: number, filter?: string, auto?: boolean | number | string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; loadbg(channel: number, layer: number, clip: string, loop?: boolean, transition?: string, transitionStingProperties?: { maskFile?: string; delay?: number; overlayFile?: string; audioFadeStart?: number; audioFadeDuration?: number; }, transitionStingDuration?: undefined, transitionOverlay?: undefined, seek?: number, length?: number, filter?: string, auto?: boolean | number | string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; /** * */ loadbgAuto(channel: number, layer: number, clip: string, loop?: boolean, transition?: Enum.Transition, transitionDuration?: number, transitionEasing?: Enum.Ease | string, transitionDirection?: Enum.Direction | string, seek?: number, length?: number, filter?: string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; loadbgAuto(channel: number, layer: number, clip: string, loop?: boolean, transition?: string, transitionMaskFile?: string, transitionStingDuration?: number, transitionOverlay?: string, seek?: number, length?: number, filter?: string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; loadbgAuto(channel: number, layer: number, clip: string, loop?: boolean, transition?: string, transitionStingProperties?: { maskFile?: string; delay?: number; overlayFile?: string; audioFadeStart?: number; audioFadeDuration?: number; }, transitionStingDuration?: undefined, transitionOverlay?: undefined, seek?: number, length?: number, filter?: string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; /** * */ load(channel: number, layer: number, clip: string, loop?: boolean, transition?: Enum.Transition, transitionDuration?: number, transitionEasing?: Enum.Ease | string, transitionDirection?: Enum.Direction | string, seek?: number, length?: number, filter?: string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; load(channel: number, layer: number, clip: string, loop?: boolean, transition?: string, transitionMaskFile?: string, transitionStingDuration?: number, transitionOverlay?: string, seek?: number, length?: number, filter?: string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; load(channel: number, layer: number, clip: string, loop?: boolean, transition?: string, transitionStingProperties?: { maskFile?: string; delay?: number; overlayFile?: string; audioFadeStart?: number; audioFadeDuration?: number; }, transitionStingDuration?: undefined, transitionOverlay?: undefined, seek?: number, length?: number, filter?: string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; /** * */ play(channel: number, layer: number, clip: string, loop?: boolean, transition?: Enum.Transition, transitionDuration?: number, transitionEasing?: Enum.Ease | string, transitionDirection?: Enum.Direction | string, seek?: number, length?: number, filter?: string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; play(channel: number, layer: number, clip: string, loop?: boolean, transition?: string, transitionMaskFile?: string, transitionStingDuration?: number, transitionOverlay?: string, seek?: number, length?: number, filter?: string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; play(channel: number, layer: number, clip: string, loop?: boolean, transition?: string, transitionStingProperties?: { maskFile?: string; delay?: number; overlayFile?: string; audioFadeStart?: number; audioFadeDuration?: number; }, transitionStingDuration?: undefined, transitionOverlay?: undefined, seek?: number, length?: number, filter?: string, channelLayout?: Enum.ChannelLayout | string, clearOn404?: boolean): Promise; /** * */ loadDecklinkBg(channel: number, layer: number | undefined, device: number, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string, auto?: boolean | number | string): Promise; /** * */ loadDecklinkBgAuto(channel: number, layer: number | undefined, device: number, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string): Promise; /** * */ loadDecklink(channel: number, layer: number | undefined, device: number, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string): Promise; /** * */ playDecklink(channel: number, layer?: number, device?: number, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string): Promise; /** * */ loadRouteBg(channel: number, layer: number | undefined, route: string | { channel: number; layer?: number; }, mode: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string, auto?: boolean | number | string, framesDelay?: number): Promise; /** * */ loadRouteBgAuto(channel: number, layer: number | undefined, route: string | { channel: number; layer?: number; }, mode: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string, framesDelay?: number): Promise; /** * */ loadRoute(channel: number, layer: number | undefined, route: string | { channel: number; layer?: number; }, mode: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string, framesDelay?: number): Promise; /** * */ playRoute(channel: number, layer: number | undefined, route: string | { channel: number; layer?: number; }, mode: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, length?: number, filter?: string, format?: Enum.ChannelFormat | string, channelLayout?: Enum.ChannelLayout | string, framesDelay?: number): Promise; /** * */ loadHtmlPageBg(channel: number, layer: number | undefined, clip: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string, auto?: boolean | number | string): Promise; /** * */ loadHtmlPageBgAuto(channel: number, layer: number | undefined, url: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string): Promise; /** * */ loadHtmlPage(channel: number, layer: number | undefined, url: string, transition?: Enum.Transition | string, transitionDurationOrMaskFile?: number | string | object, transitionEasingOrStingDuration?: Enum.Ease | string | number, transitionDirectionOrOverlay?: Enum.Direction | string): Promise; /** * */ playHtmlPage(channel: number, layer?: number): Promise; /** * */ pause(channel: number, layer?: number): Promise; /** * */ resume(channel: number, layer?: number): Promise; /** * */ stop(channel: number, layer?: number): Promise; /** * */ cgAdd(channel: number, layer: number | undefined, flashLayer: number | undefined, templateName: string, playOnLoad: boolean | number | string, data?: TemplateData): Promise; /** * */ cgPlay(channel: number, layer?: number, flashLayer?: number): Promise; /** * */ cgStop(channel: number, layer?: number, flashLayer?: number): Promise; /** * */ cgNext(channel: number, layer?: number, flashLayer?: number): Promise; /** * */ cgRemove(channel: number, layer?: number, flashLayer?: number): Promise; /** * */ cgClear(channel: number, layer?: number): Promise; /** * */ cgUpdate(channel: number, layer: number | undefined, flashLayer: number, data: TemplateData): Promise; cgInvoke(channel: number, layer: number, flashLayer: number, method: string): Promise; /** * */ mixerKeyer(channel: number, layer: number, state?: number | boolean, defer?: boolean): Promise; /** * */ mixerKeyerDeferred(channel: number, layer: number, state?: number | boolean): Promise; /** * */ getMixerStatusKeyer(channel: number, layer?: number): Promise; /** * */ mixerChroma(channel: number, layer: number, keyer: Enum.Chroma, threshold: number, softness: number, spill: number, transitionDuration?: number, transitionEasing?: Enum.Ease, defer?: boolean): Promise; mixerChroma(channel: number, layer: number, keyer: string, threshold: number, softness: number, spill: number, transitionDuration?: number, transitionEasing?: string, defer?: boolean): Promise; mixerChroma(channel: number, layer: number, keyer?: Enum.Chroma | string, threshold?: number, softness?: number, spill?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerChromaDeferred(channel: number, layer: number, keyer: Enum.Chroma, threshold: number, softness: number, spill: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusChroma(channel: number, layer?: number): Promise; /** * */ mixerBlend(channel: number, layer: number, blendmode: string | Enum.BlendMode, defer?: boolean): Promise; mixerBlend(channel: number, layer?: number, blendmode?: Enum.BlendMode | string, defer?: boolean): Promise; /** * */ mixerBlendDeferred(channel: number, layer: number, blendmode: string | Enum.BlendMode): Promise; /** * */ getMixerStatusBlend(channel: number, layer?: number): Promise; /** * */ mixerOpacity(channel: number, layer: number, opacity: number, transitionDuration?: number, transitionEasing?: string | Enum.Ease, defer?: boolean): Promise; mixerOpacity(channel: number, layer?: number, opacity?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerOpacityDeferred(channel: number, layer: number | undefined, opacity: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusOpacity(channel: number, layer?: number): Promise; /** * */ mixerBrightness(channel: number, layer: number, brightness: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerBrightness(channel: number, layer?: number, brightness?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerBrightnessDeferred(channel: number, layer: number | undefined, brightness: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusBrightness(channel: number, layer?: number): Promise; /** * */ mixerSaturation(channel: number, layer: number, saturation: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerSaturation(channel: number, layer?: number, saturation?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerSaturationDeferred(channel: number, layer: number | undefined, saturation: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusSaturation(channel: number, layer?: number): Promise; /** * */ mixerContrast(channel: number, layer: number, contrast: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerContrast(channel: number, layer?: number, contrast?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerContrastDeferred(channel: number, layer: number | undefined, contrast: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusContrast(channel: number, layer?: number): Promise; /** * */ mixerLevels(channel: number, layer: number, minInput: number, maxInput: number, gamma: number, minOutput: number, maxOutput: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerLevels(channel: number, layer: number, minInput: number, maxInput: number, gamma: number, minOutput: number, maxOutput: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerLevelsDeferred(channel: number, layer: number | undefined, minInput: number, maxInput: number, gamma: number, minOutput: number, maxOutput: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusLevels(channel: number, layer?: number): Promise; /** * */ mixerFill(channel: number, layer: number, x: number, y: number, xScale: number, yScale: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerFill(channel: number, layer: number, x: number, y: number, xScale: number, yScale: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerFillDeferred(channel: number, layer: number | undefined, x: number, y: number, xScale: number, yScale: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusFill(channel: number, layer?: number): Promise; /** * */ mixerClip(channel: number, layer: number, x: number, y: number, width: number, height: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerClip(channel: number, layer: number, x: number, y: number, width: number, height: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerClipDeferred(channel: number, layer: number | undefined, x: number, y: number, width: number, height: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusClip(channel: number, layer?: number): Promise; /** * */ mixerAnchor(channel: number, layer: number, x: number, y: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerAnchor(channel: number, layer: number, x: number, y: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerAnchorDeferred(channel: number, layer: number | undefined, x: number, y: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusAnchor(channel: number, layer?: number): Promise; /** * */ mixerCrop(channel: number, layer: number, left: number, top: number, right: number, bottom: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerCrop(channel: number, layer: number, left: number, top: number, right: number, bottom: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerCropDeferred(channel: number, layer: number | undefined, left: number, top: number, right: number, bottom: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusCrop(channel: number, layer?: number): Promise; /** * */ mixerRotation(channel: number, layer: number, rotation: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerRotation(channel: number, layer?: number, rotation?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerRotationDeferred(channel: number, layer: number | undefined, rotation: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusRotation(channel: number, layer?: number): Promise; /** * */ mixerPerspective(channel: number, layer: number, topLeftX: number, topLeftY: number, topRightX: number, topRightY: number, bottomRightX: number, bottomRightY: number, bottomLeftX: number, bottomLeftY: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerPerspective(channel: number, layer: number, topLeftX: number, topLeftY: number, topRightX: number, topRightY: number, bottomRightX: number, bottomRightY: number, bottomLeftX: number, bottomLeftY: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerPerspectiveDeferred(channel: number, layer: number | undefined, topLeftX: number, topLeftY: number, topRightX: number, topRightY: number, bottomRightX: number, bottomRightY: number, bottomLeftX: number, bottomLeftY: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusPerspective(channel: number, layer?: number): Promise; /** * */ mixerMipmap(channel: number, layer?: number, state?: number | boolean, defer?: boolean): Promise; /** * */ mixerMipmapDeferred(channel: number, layer?: number, state?: number | boolean): Promise; /** * */ getMixerStatusMipmap(channel: number, layer?: number): Promise; /** * */ mixerVolume(channel: number, layer: number, volume: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerVolume(channel: number, layer?: number, volume?: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerVolumeDeferred(channel: number, layer: number | undefined, volume: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ getMixerStatusVolume(channel: number, layer?: number): Promise; /** * */ mixerMastervolume(channel: number, mastervolume?: number, defer?: boolean): Promise; /** * */ mixerMastervolumeDeferred(channel: number, mastervolume?: number): Promise; /** * */ getMixerStatusMastervolume(channel: number): Promise; /** * */ mixerStraightAlphaOutput(channel: number, layer?: number, state?: number | boolean, defer?: boolean): Promise; /** * */ mixerStraightAlphaOutputDeferred(channel: number, layer?: number, state?: number | boolean): Promise; /** * */ getMixerStatusStraightAlphaOutput(channel: number, layer?: number): Promise; /** * */ mixerGrid(channel: number, resolution: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; mixerGrid(channel: number, resolution: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string, defer?: boolean): Promise; /** * */ mixerGridDeferred(channel: number, resolution: number, transitionDuration?: number, transitionEasing?: Enum.Ease | string): Promise; /** * */ mixerCommit(channel: number): Promise; /** * */ mixerClear(channel: number, layer?: number): Promise; /** * */ clear(channel: number, layer?: number): Promise; /** * @todo implement * @todo document */ call(channel: number, layer: number, param: Enum.CallParam, value: number): Promise; /** * @todo implement * @todo document */ swap(): Promise; /** * @todo implement * @todo document */ add(channel: number): Promise; /** * */ addDecklink(channel: number, device: number, id?: number): Promise; /** * */ addImage(channel: number, fileName: string, id?: number): Promise; /** * */ addFile(channel: number, fileName: string, id?: number): Promise; /** * */ addStream(channel: number, uri: string, params: string, id?: number): Promise; /** * */ remove(channel: number, id: number): Promise; /** * */ removeDecklink(channel: number, device: number): Promise; /** * */ removeImage(channel: number, fileName: string): Promise; /** * */ removeFile(channel: number, fileName: string): Promise; /** * */ removeStream(channel: number, uri: string): Promise; /** * */ print(channel: number): Promise; /** * @todo implement * @todo document */ set(channel: number): Promise; /** * */ lock(channel: number, action: Enum.Lock | string, lockPhrase?: string): Promise; /** * */ channelGrid(): Promise; /** * */ glGC(): Promise; /** * */ dataStore(fileName: string, data: TemplateData): Promise; /** * */ dataRetrieve(fileName: string): Promise; /** * */ dataList(): Promise; /** * */ dataRemove(fileName: string): Promise; /** * */ thumbnailList(subFolder?: string): Promise; /** * */ thumbnailRetrieve(fileName: string): Promise; /** * */ thumbnailGenerate(fileName: string): Promise; /** * */ thumbnailGenerateAll(): Promise; /** * */ cinf(fileName: string): Promise; /** * */ cls(subFolder?: string): Promise; /** * */ fls(): Promise; /** * */ tls(subFolder?: string): Promise; /** * */ version(component?: Enum.Version): Promise; /** * */ info(channel?: number, layer?: number): Promise; /** * */ infoTemplate(template: string): Promise; /** * */ infoConfig(): Promise; /** * */ infoPaths(): Promise; /** * */ infoSystem(): Promise; /** * */ infoServer(): Promise; /** * */ infoQueues(): Promise; /** * */ infoThreads(): Promise; /** * */ infoDelay(channel: number, layer?: number): Promise; /** * Retrieves information about a running template or the templatehost. * * Calling `infoDelay` without `flashLayer` parameter is the same as calling the convenience method [[templateHostInfo]]. * * * * @param flashLayer If not specified, information about the `TemplateHost` will be returned. */ cgInfo(channel: number, layer?: number, flashLayer?: number): Promise; /** * Convenience method for calling [[cgInfo]] to return information about `TemplateHost` for a given layer. * * */ templateHostInfo(channel: number, layer?: number): Promise; /** * */ glInfo(): Promise; /** * Sets the server's [[LogLevel]]. * * */ logLevel(enumOrString: Enum.LogLevel | string): Promise; /** * Enabling or disabling logging for a given [[LogCategory]]. * * Convenience methods [[logCalltrace]] and [[logCommunication]] are available. * * */ logCategory(category: Enum.LogCategory | string, enabled: boolean): Promise; /** * Convenience method for enabling or disabling logging for [[LogCategory.CALLTRACE]] through calling [[logCategory]]. */ logCalltrace(enabled: boolean): Promise; /** * Convenience method for enabling or disabling logging for [[LogCategory.COMMUNICATION]] through calling [[logCategory]]. */ logCommunication(enabled: boolean): Promise; /** * */ diag(): Promise; /** * */ help(): Promise; /** * Convenience method for calling [[help]] with no parameters. * * */ getCommands(): Promise; /** * */ helpProducer(): Promise; /** * Convenience method for calling [[helpProducer]] with no parameters. * * */ getProducers(): Promise; /** * */ helpConsumer(consumerOrName?: (Enum.Consumer | string)): Promise; /** * Convenience method for calling [[helpConsumer]] with no parameters. * * */ getConsumers(): Promise; /** * */ bye(): Promise; /** * */ kill(): Promise; /** * */ restart(): Promise; /** * Undocumented, but implemented by Julusian. */ ping(): Promise; /** * Undocumented, but implemented by Julusian. */ time(channel: number, timecode?: string): Promise; /** * https://github.com/CasparCG/server/issues/872 */ scheduleSet(timecode: string, command: IAMCPCommand): Promise; /** * https://github.com/CasparCG/server/issues/872 */ scheduleRemove(token: string): Promise; /** * https://github.com/CasparCG/server/issues/872 */ scheduleClear(): Promise; /** * https://github.com/CasparCG/server/issues/872 */ scheduleList(timecode?: string): Promise; /** * Automatically create a transition object with the correct transition keys */ private _createTransitionOptionsObject; /** * */ private _createNewSocket; /** * */ private _fetchNextCommand; /** * */ private readonly _nextCommand; /** * */ private _onSocketError; /** * */ private _log; /** * */ private _onSocketStatusChange; /** * */ private _onSocketStatusTimeout; /** * */ private _handleSocketResponse; /** * */ private _handleInvalidSocketResponse; /** * */ private _flushSentCommands; /** * */ private _executeNextCommand; }