///
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;
/**
*