/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and re-run the "tsr-schema-types" tool to regenerate this file.
 */
import type { ActionExecutionResult } from "../actions";
export interface CasparCGOptions {
    /**
     * Host of CasparCG server
     */
    host: string;
    /**
     * Port of CasparCG server
     */
    port?: number;
    launcherHost?: string;
    launcherPort?: number;
    launcherProcess?: string;
    /**
     * fps used for all channels
     */
    fps?: number;
    /**
     * Interval (ms) for retrying to load media that previously failed. (-1 disables, 0 uses the default interval)
     */
    retryInterval?: number;
}
export interface MappingCasparCGLayer {
    channel: number;
    layer: number;
    previewWhenNotOnAir?: boolean;
    mappingType: MappingCasparCGType.Layer;
}
export declare enum MappingCasparCGType {
    Layer = "layer"
}
export type SomeMappingCasparCG = MappingCasparCGLayer;
export interface ListMediaPayload {
    subDirectory?: string;
}
export type ListMediaResult = {
    clip: string;
    type: 'MOVIE' | 'STILL' | 'AUDIO';
    size: number;
    datetime?: number;
    frames: number;
    framerate: number;
}[];
export declare enum CasparCGActions {
    ClearAllChannels = "clearAllChannels",
    RestartServer = "restartServer",
    ListMedia = "listMedia"
}
export interface CasparCGActionMethods {
    [CasparCGActions.ClearAllChannels]: (payload: Record<string, never>) => Promise<ActionExecutionResult<void>>;
    [CasparCGActions.RestartServer]: (payload: Record<string, never>) => Promise<ActionExecutionResult<void>>;
    [CasparCGActions.ListMedia]: (payload: ListMediaPayload) => Promise<ActionExecutionResult<ListMediaResult>>;
}
export interface CasparCGDeviceTypes {
    Options: CasparCGOptions;
    Mappings: SomeMappingCasparCG;
    Actions: CasparCGActionMethods;
}
//# sourceMappingURL=casparCG.d.ts.map