/**
 * 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 AtemOptions {
    host: string;
    port?: number;
    mediaPoolAssets?: AtemMediaPoolAsset[];
}
export interface AtemMediaPoolAsset {
    path: string;
    type: AtemMediaPoolType;
    position: number;
}
export declare enum AtemMediaPoolType {
    Still = "still",
    Clip = "clip",
    Audio = "audio"
}
export interface MappingAtemControlValue {
    mappingType: MappingAtemType.ControlValue;
}
export interface MappingAtemMixEffect {
    index: number;
    mappingType: MappingAtemType.MixEffect;
}
export interface MappingAtemDownStreamKeyer {
    index: number;
    mappingType: MappingAtemType.DownStreamKeyer;
}
export interface MappingAtemSuperSourceBox {
    index: number;
    mappingType: MappingAtemType.SuperSourceBox;
}
export interface MappingAtemAuxilliary {
    index: number;
    mappingType: MappingAtemType.Auxilliary;
}
export interface MappingAtemMediaPlayer {
    index: number;
    mappingType: MappingAtemType.MediaPlayer;
}
export interface MappingAtemSuperSourceProperties {
    index: number;
    mappingType: MappingAtemType.SuperSourceProperties;
}
export interface MappingAtemAudioChannel {
    index: number;
    mappingType: MappingAtemType.AudioChannel;
}
export interface MappingAtemMacroPlayer {
    mappingType: MappingAtemType.MacroPlayer;
}
export interface MappingAtemAudioRouting {
    index: number;
    mappingType: MappingAtemType.AudioRouting;
}
export interface MappingAtemColorGenerator {
    index: number;
    mappingType: MappingAtemType.ColorGenerator;
}
export declare enum MappingAtemType {
    ControlValue = "controlValue",
    MixEffect = "mixEffect",
    DownStreamKeyer = "downStreamKeyer",
    SuperSourceBox = "superSourceBox",
    Auxilliary = "auxilliary",
    MediaPlayer = "mediaPlayer",
    SuperSourceProperties = "superSourceProperties",
    AudioChannel = "audioChannel",
    MacroPlayer = "macroPlayer",
    AudioRouting = "audioRouting",
    ColorGenerator = "colorGenerator"
}
export type SomeMappingAtem = MappingAtemControlValue | MappingAtemMixEffect | MappingAtemDownStreamKeyer | MappingAtemSuperSourceBox | MappingAtemAuxilliary | MappingAtemMediaPlayer | MappingAtemSuperSourceProperties | MappingAtemAudioChannel | MappingAtemMacroPlayer | MappingAtemAudioRouting | MappingAtemColorGenerator;
export interface RunMacroPayload {
    macroIndex: number;
}
export declare enum AtemActions {
    Resync = "resync",
    RunMacro = "runMacro"
}
export interface AtemActionMethods {
    [AtemActions.Resync]: (payload: Record<string, never>) => Promise<ActionExecutionResult<void>>;
    [AtemActions.RunMacro]: (payload: RunMacroPayload) => Promise<ActionExecutionResult<void>>;
}
export interface AtemDeviceTypes {
    Options: AtemOptions;
    Mappings: SomeMappingAtem;
    Actions: AtemActionMethods;
}
//# sourceMappingURL=atem.d.ts.map