import * as VScript from "http://172.16.0.12/bladerunner_sdk/vscript@2.5.2/deno/release/mod.ts";
import * as VAPI from "./mod.ts";
export const lift = {
  AlarmConfiguratin: (
    _raw: [boolean],
    _socket: VScript.VSocket,
  ): AlarmConfiguratin => {
    return { enable: _raw[0] };
  },
  AlarmConfiguratinWithTiming: (
    _raw: [boolean, number, number],
    _socket: VScript.VSocket,
  ): AlarmConfiguratinWithTiming => {
    return {
      enable: _raw[0],
      activate_duration: VScript.VAPIHelpers.liftNanoseconds(_raw[1], _socket),
      deactivate_duration: VScript.VAPIHelpers.liftNanoseconds(
        _raw[2],
        _socket,
      ),
    };
  },
  AlarmConfigurationWithTimingAndAudioLevel: (
    _raw: [boolean, number, number, number],
    _socket: VScript.VSocket,
  ): AlarmConfigurationWithTimingAndAudioLevel => {
    return {
      enable: _raw[0],
      activate_duration: VScript.VAPIHelpers.liftNanoseconds(_raw[1], _socket),
      deactivate_duration: VScript.VAPIHelpers.liftNanoseconds(
        _raw[2],
        _socket,
      ),
      level: _raw[3],
    };
  },
  AlarmConfigurationWithVideoStandard: (
    _raw: [boolean, VAPI.Video.Standard],
    _socket: VScript.VSocket,
  ): AlarmConfigurationWithVideoStandard => {
    return {
      enable: _raw[0],
      video_standard: _raw[1],
    };
  },
  ClusterAudioMonitoringObjectAlarmsConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterAudioMonitoringObjectAlarmsConfiguration(_raw),
  ClusterAudioMonitoringObjectAlarmsEnable: (
    _raw: [boolean, boolean, boolean, boolean, boolean, boolean, boolean],
    _socket: VScript.VSocket,
  ): ClusterAudioMonitoringObjectAlarmsEnable => {
    return {
      not_assigned_source: _raw[0],
      lost_source: _raw[1],
      silent_source: _raw[2],
      over_range_source: _raw[3],
      under_range_source: _raw[4],
      unexpected_source_standard: _raw[5],
      tally_source: _raw[6],
    };
  },
  ClusterAudioMonitoringObjectAlarmsSeverityLevel: (
    _raw: [number, number, number, number, number, number],
    _socket: VScript.VSocket,
  ): ClusterAudioMonitoringObjectAlarmsSeverityLevel => {
    return {
      not_assigned_source: _raw[0],
      lost_source: _raw[1],
      silent_source: _raw[2],
      over_range_source: _raw[3],
      under_range_source: _raw[4],
      unexpected_source_standard: _raw[5],
    };
  },
  ClusterAudioMonitoringObjectConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterAudioMonitoringObjectConfiguration(_raw),
  ClusterAudioMonitoringObjectRuntimeAlarms: (
    _raw: [boolean, boolean, boolean, boolean, boolean, boolean],
    _socket: VScript.VSocket,
  ): ClusterAudioMonitoringObjectRuntimeAlarms => {
    return {
      not_assigned_source: _raw[0],
      lost_source: _raw[1],
      silent_source: _raw[2],
      over_range_source: _raw[3],
      under_range_source: _raw[4],
      unexpected_source_standard: _raw[5],
    };
  },
  ClusterGlobalMonitoringObjectsParameters: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterGlobalMonitoringObjectsParameters(_raw),
  ClusterMetadataMonitoringObjectAlarmsConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterMetadataMonitoringObjectAlarmsConfiguration(_raw),
  ClusterMetadataMonitoringObjectAlarmsEnable: (
    _raw: [boolean, boolean, boolean, boolean],
    _socket: VScript.VSocket,
  ): ClusterMetadataMonitoringObjectAlarmsEnable => {
    return {
      not_assigned_source: _raw[0],
      lost_source: _raw[1],
      missing_closed_caption: _raw[2],
      missing_time_code: _raw[3],
    };
  },
  ClusterMetadataMonitoringObjectAlarmsSeverityLevel: (
    _raw: [number, number, number, number],
    _socket: VScript.VSocket,
  ): ClusterMetadataMonitoringObjectAlarmsSeverityLevel => {
    return {
      not_assigned_source: _raw[0],
      lost_source: _raw[1],
      missing_closed_caption: _raw[2],
      missing_time_code: _raw[3],
    };
  },
  ClusterMetadataMonitoringObjectConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterMetadataMonitoringObjectConfiguration(_raw),
  ClusterMetadataMonitoringObjectRuntimeAlarms: (
    _raw: [boolean, boolean, boolean, boolean],
    _socket: VScript.VSocket,
  ): ClusterMetadataMonitoringObjectRuntimeAlarms => {
    return {
      not_assigned_source: _raw[0],
      lost_source: _raw[1],
      missing_closed_caption: _raw[2],
      missing_time_code: _raw[3],
    };
  },
  ClusterMonitoringObjectAlarmsEnable: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterMonitoringObjectAlarmsEnable(_raw),
  ClusterMonitoringObjectAlarmsSeverityLevel: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterMonitoringObjectAlarmsSeverityLevel(_raw),
  ClusterMonitoringObjectGlobalConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterMonitoringObjectGlobalConfiguration(_raw),
  ClusterMonitoringObjectUserAlarmConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterMonitoringObjectUserAlarmConfiguration(_raw),
  ClusterVideoMonitoringObjectAlarmsConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterVideoMonitoringObjectAlarmsConfiguration(_raw),
  ClusterVideoMonitoringObjectAlarmsEnable: (
    _raw: [boolean, boolean, boolean, boolean, boolean, boolean],
    _socket: VScript.VSocket,
  ): ClusterVideoMonitoringObjectAlarmsEnable => {
    return {
      not_assigned_source: _raw[0],
      lost_source: _raw[1],
      frozen_source: _raw[2],
      black_source: _raw[3],
      unexpected_source_standard: _raw[4],
      tally_source: _raw[5],
    };
  },
  ClusterVideoMonitoringObjectAlarmsSeverityLevel: (
    _raw: [number, number, number, number, number],
    _socket: VScript.VSocket,
  ): ClusterVideoMonitoringObjectAlarmsSeverityLevel => {
    return {
      not_assigned_source: _raw[0],
      lost_source: _raw[1],
      frozen_source: _raw[2],
      black_source: _raw[3],
      unexpected_source_standard: _raw[4],
    };
  },
  ClusterVideoMonitoringObjectConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ClusterVideoMonitoringObjectConfiguration(_raw),
  ClusterVideoMonitoringObjectRuntimeAlarms: (
    _raw: [boolean, boolean, boolean, boolean, boolean],
    _socket: VScript.VSocket,
  ): ClusterVideoMonitoringObjectRuntimeAlarms => {
    return {
      not_assigned_source: _raw[0],
      lost_source: _raw[1],
      frozen_source: _raw[2],
      black_source: _raw[3],
      unexpected_source_standard: _raw[4],
    };
  },
  MonitoringObjectChannelID: (
    _raw: [number, number],
    _socket: VScript.VSocket,
  ): MonitoringObjectChannelID => {
    return {
      id: _raw[0],
      channel_id: _raw[1],
    };
  },
} as const;
export const lower = {
  AlarmConfiguratin: (
    _x: { enable: boolean },
    _socket: VScript.VSocket,
  ): [boolean] => [_x.enable],
  AlarmConfiguratinWithTiming: (
    _x: {
      enable: boolean;

      /**
      How long takes to activate alarm
    */
      activate_duration: VScript.Duration;

      /**
      How long takes to deactivate alarm
    */
      deactivate_duration: VScript.Duration;
    },
    _socket: VScript.VSocket,
  ): [boolean, number, number] => [
    _x.enable,
    VScript.VAPIHelpers.lowerNanoseconds(_x.activate_duration, _socket),
    VScript.VAPIHelpers.lowerNanoseconds(_x.deactivate_duration, _socket),
  ],
  AlarmConfigurationWithTimingAndAudioLevel: (
    _x: {
      enable: boolean;

      /**
      How long it takes to activate alarm
    */
      activate_duration: VScript.Duration;

      /**
      How long it takes to deactivate alarm
    */
      deactivate_duration: VScript.Duration;
      level: number;
    },
    _socket: VScript.VSocket,
  ): [boolean, number, number, number] => [
    _x.enable,
    VScript.VAPIHelpers.lowerNanoseconds(_x.activate_duration, _socket),
    VScript.VAPIHelpers.lowerNanoseconds(_x.deactivate_duration, _socket),
    _x.level,
  ],
  AlarmConfigurationWithVideoStandard: (
    _x: { enable: boolean; video_standard: VAPI.Video.Standard },
    _socket: VScript.VSocket,
  ): [boolean, VAPI.Video.Standard] => [_x.enable, _x.video_standard],
  ClusterAudioMonitoringObjectAlarmsConfiguration: (
    _x: ClusterAudioMonitoringObjectAlarmsConfiguration,
  ) => _x.raw.kwl,
  ClusterAudioMonitoringObjectAlarmsEnable: (
    _x: {
      not_assigned_source: boolean;
      lost_source: boolean;
      silent_source: boolean;
      over_range_source: boolean;
      under_range_source: boolean;
      unexpected_source_standard: boolean;
      tally_source: boolean;
    },
    _socket: VScript.VSocket,
  ): [boolean, boolean, boolean, boolean, boolean, boolean, boolean] => [
    _x.not_assigned_source,
    _x.lost_source,
    _x.silent_source,
    _x.over_range_source,
    _x.under_range_source,
    _x.unexpected_source_standard,
    _x.tally_source,
  ],
  ClusterAudioMonitoringObjectAlarmsSeverityLevel: (
    _x: {
      not_assigned_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      lost_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      silent_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      over_range_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      under_range_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      unexpected_source_standard: VAPI.ClusterMonitoringObjects.SeverityLevel;
    },
    _socket: VScript.VSocket,
  ): [number, number, number, number, number, number] => [
    _x.not_assigned_source,
    _x.lost_source,
    _x.silent_source,
    _x.over_range_source,
    _x.under_range_source,
    _x.unexpected_source_standard,
  ],
  ClusterAudioMonitoringObjectConfiguration: (
    _x: ClusterAudioMonitoringObjectConfiguration,
  ) => _x.raw.kwl,
  ClusterAudioMonitoringObjectRuntimeAlarms: (
    _x: {
      not_assigned_source: boolean;
      lost_source: boolean;
      silent_source: boolean;
      over_range_source: boolean;
      under_range_source: boolean;
      unexpected_source_standard: boolean;
    },
    _socket: VScript.VSocket,
  ): [boolean, boolean, boolean, boolean, boolean, boolean] => [
    _x.not_assigned_source,
    _x.lost_source,
    _x.silent_source,
    _x.over_range_source,
    _x.under_range_source,
    _x.unexpected_source_standard,
  ],
  ClusterGlobalMonitoringObjectsParameters: (
    _x: ClusterGlobalMonitoringObjectsParameters,
  ) => _x.raw.kwl,
  ClusterMetadataMonitoringObjectAlarmsConfiguration: (
    _x: ClusterMetadataMonitoringObjectAlarmsConfiguration,
  ) => _x.raw.kwl,
  ClusterMetadataMonitoringObjectAlarmsEnable: (
    _x: {
      not_assigned_source: boolean;
      lost_source: boolean;
      missing_closed_caption: boolean;
      missing_time_code: boolean;
    },
    _socket: VScript.VSocket,
  ): [boolean, boolean, boolean, boolean] => [
    _x.not_assigned_source,
    _x.lost_source,
    _x.missing_closed_caption,
    _x.missing_time_code,
  ],
  ClusterMetadataMonitoringObjectAlarmsSeverityLevel: (
    _x: {
      not_assigned_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      lost_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      missing_closed_caption: VAPI.ClusterMonitoringObjects.SeverityLevel;
      missing_time_code: VAPI.ClusterMonitoringObjects.SeverityLevel;
    },
    _socket: VScript.VSocket,
  ): [number, number, number, number] => [
    _x.not_assigned_source,
    _x.lost_source,
    _x.missing_closed_caption,
    _x.missing_time_code,
  ],
  ClusterMetadataMonitoringObjectConfiguration: (
    _x: ClusterMetadataMonitoringObjectConfiguration,
  ) => _x.raw.kwl,
  ClusterMetadataMonitoringObjectRuntimeAlarms: (
    _x: {
      not_assigned_source: boolean;
      lost_source: boolean;
      missing_closed_caption: boolean;
      missing_time_code: boolean;
    },
    _socket: VScript.VSocket,
  ): [boolean, boolean, boolean, boolean] => [
    _x.not_assigned_source,
    _x.lost_source,
    _x.missing_closed_caption,
    _x.missing_time_code,
  ],
  ClusterMonitoringObjectAlarmsEnable: (
    _x: ClusterMonitoringObjectAlarmsEnable,
  ) => _x.raw.kwl,
  ClusterMonitoringObjectAlarmsSeverityLevel: (
    _x: ClusterMonitoringObjectAlarmsSeverityLevel,
  ) => _x.raw.kwl,
  ClusterMonitoringObjectGlobalConfiguration: (
    _x: ClusterMonitoringObjectGlobalConfiguration,
  ) => _x.raw.kwl,
  ClusterMonitoringObjectUserAlarmConfiguration: (
    _x: ClusterMonitoringObjectUserAlarmConfiguration,
  ) => _x.raw.kwl,
  ClusterVideoMonitoringObjectAlarmsConfiguration: (
    _x: ClusterVideoMonitoringObjectAlarmsConfiguration,
  ) => _x.raw.kwl,
  ClusterVideoMonitoringObjectAlarmsEnable: (
    _x: {
      not_assigned_source: boolean;
      lost_source: boolean;
      frozen_source: boolean;
      black_source: boolean;
      unexpected_source_standard: boolean;
      tally_source: boolean;
    },
    _socket: VScript.VSocket,
  ): [boolean, boolean, boolean, boolean, boolean, boolean] => [
    _x.not_assigned_source,
    _x.lost_source,
    _x.frozen_source,
    _x.black_source,
    _x.unexpected_source_standard,
    _x.tally_source,
  ],
  ClusterVideoMonitoringObjectAlarmsSeverityLevel: (
    _x: {
      not_assigned_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      lost_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      frozen_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      black_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
      unexpected_source_standard: VAPI.ClusterMonitoringObjects.SeverityLevel;
    },
    _socket: VScript.VSocket,
  ): [number, number, number, number, number] => [
    _x.not_assigned_source,
    _x.lost_source,
    _x.frozen_source,
    _x.black_source,
    _x.unexpected_source_standard,
  ],
  ClusterVideoMonitoringObjectConfiguration: (
    _x: ClusterVideoMonitoringObjectConfiguration,
  ) => _x.raw.kwl,
  ClusterVideoMonitoringObjectRuntimeAlarms: (
    _x: {
      not_assigned_source: boolean;
      lost_source: boolean;
      frozen_source: boolean;
      black_source: boolean;
      unexpected_source_standard: boolean;
    },
    _socket: VScript.VSocket,
  ): [boolean, boolean, boolean, boolean, boolean] => [
    _x.not_assigned_source,
    _x.lost_source,
    _x.frozen_source,
    _x.black_source,
    _x.unexpected_source_standard,
  ],
  MonitoringObjectChannelID: (
    _x: {
      id: VAPI.ClusterMonitoringObjects.MonitoringObjectID;
      channel_id: number;
    },
    _socket: VScript.VSocket,
  ): [number, number] => [_x.id, _x.channel_id],
} as const;
export type ALARMSMASK = number;
export interface AlarmConfiguratin {
  enable: boolean;
}
export interface AlarmConfiguratinWithTiming {
  enable: boolean;

  /**
    How long takes to activate alarm
  */
  activate_duration: VScript.Duration;

  /**
    How long takes to deactivate alarm
  */
  deactivate_duration: VScript.Duration;
}
export interface AlarmConfigurationWithTimingAndAudioLevel {
  enable: boolean;

  /**
    How long it takes to activate alarm
  */
  activate_duration: VScript.Duration;

  /**
    How long it takes to deactivate alarm
  */
  deactivate_duration: VScript.Duration;
  level: number;
}
export interface AlarmConfigurationWithVideoStandard {
  enable: boolean;
  video_standard: VAPI.Video.Standard;
}
export type COMBINEFUNCTION = "OR" | "AND";
export class ClusterAudioMonitoringObjectAlarmsConfiguration
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterAudioMonitoringObjectAlarmsConfiguration">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterAudioMonitoringObjectAlarmsConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get not_assigned_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean],
    [boolean],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean],
      [boolean],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
    >(
      this,
      "not_assigned_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      null,
    );
  }
  get lost_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean],
    [boolean],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean],
      [boolean],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
    >(
      this,
      "lost_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      null,
    );
  }
  get silent_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, number, number, number],
    [boolean, number, number, number],
    VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
    VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, number, number, number],
      [boolean, number, number, number],
      VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
      VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
    >(
      this,
      "silent_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .AlarmConfigurationWithTimingAndAudioLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .AlarmConfigurationWithTimingAndAudioLevel,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .AlarmConfigurationWithTimingAndAudioLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .AlarmConfigurationWithTimingAndAudioLevel,
      },
      null,
    );
  }
  get over_range_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, number, number, number],
    [boolean, number, number, number],
    VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
    VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, number, number, number],
      [boolean, number, number, number],
      VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
      VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
    >(
      this,
      "over_range_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .AlarmConfigurationWithTimingAndAudioLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .AlarmConfigurationWithTimingAndAudioLevel,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .AlarmConfigurationWithTimingAndAudioLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .AlarmConfigurationWithTimingAndAudioLevel,
      },
      null,
    );
  }
  get under_range_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, number, number, number],
    [boolean, number, number, number],
    VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
    VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, number, number, number],
      [boolean, number, number, number],
      VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
      VAPI.ClusterMonitoringObjects.AlarmConfigurationWithTimingAndAudioLevel,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
    >(
      this,
      "under_range_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .AlarmConfigurationWithTimingAndAudioLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .AlarmConfigurationWithTimingAndAudioLevel,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .AlarmConfigurationWithTimingAndAudioLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .AlarmConfigurationWithTimingAndAudioLevel,
      },
      null,
    );
  }
  get unexpected_source_standard(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean],
    [boolean],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean],
      [boolean],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
    >(
      this,
      "unexpected_source_standard" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      null,
    );
  }
  get tally_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean],
    [boolean],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean],
      [boolean],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsConfiguration
    >(
      this,
      "tally_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      null,
    );
  }
}
export interface ClusterAudioMonitoringObjectAlarmsEnable {
  not_assigned_source: boolean;
  lost_source: boolean;
  silent_source: boolean;
  over_range_source: boolean;
  under_range_source: boolean;
  unexpected_source_standard: boolean;
  tally_source: boolean;
}
export interface ClusterAudioMonitoringObjectAlarmsSeverityLevel {
  not_assigned_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  lost_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  silent_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  over_range_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  under_range_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  unexpected_source_standard: VAPI.ClusterMonitoringObjects.SeverityLevel;
}
export class ClusterAudioMonitoringObjectConfiguration
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterAudioMonitoringObjectConfiguration">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterAudioMonitoringObjectConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get source_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.ClusterSources.AudioSourceID,
    VAPI.ClusterSources.AudioSourceID,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.ClusterSources.AudioSourceID,
      VAPI.ClusterSources.AudioSourceID,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectConfiguration
    >(
      this,
      "source_id" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get channel_id_start(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectConfiguration
    >(
      this,
      "channel_id_start" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get channels_num(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectConfiguration
    >(
      this,
      "channels_num" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get channels_combine_function(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.ClusterMonitoringObjects.COMBINEFUNCTION,
    VAPI.ClusterMonitoringObjects.COMBINEFUNCTION,
    VAPI.ClusterMonitoringObjects.COMBINEFUNCTION,
    VAPI.ClusterMonitoringObjects.COMBINEFUNCTION,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.ClusterMonitoringObjects.COMBINEFUNCTION,
      VAPI.ClusterMonitoringObjects.COMBINEFUNCTION,
      VAPI.ClusterMonitoringObjects.COMBINEFUNCTION,
      VAPI.ClusterMonitoringObjects.COMBINEFUNCTION,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectConfiguration
    >(
      this,
      "channels_combine_function" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get alarms() {
    return VAPI.ClusterMonitoringObjects.lift.ClusterAudioMonitoringObjectAlarmsConfiguration(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 4, "alarms"),
    );
  }
}
export interface ClusterAudioMonitoringObjectRuntimeAlarms {
  not_assigned_source: boolean;
  lost_source: boolean;
  silent_source: boolean;
  over_range_source: boolean;
  under_range_source: boolean;
  unexpected_source_standard: boolean;
}
export class ClusterGlobalMonitoringObjectsParameters
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterGlobalMonitoringObjectsParameters">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterGlobalMonitoringObjectsParameters" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get severity_levels() {
    return VAPI.ClusterMonitoringObjects.lift.ClusterMonitoringObjectAlarmsSeverityLevel(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 0, "severity_levels"),
    );
  }
}
export class ClusterMetadataMonitoringObjectAlarmsConfiguration
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterMetadataMonitoringObjectAlarmsConfiguration">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterMetadataMonitoringObjectAlarmsConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get not_assigned_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean],
    [boolean],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean],
      [boolean],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsConfiguration
    >(
      this,
      "not_assigned_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      null,
    );
  }
  get lost_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean],
    [boolean],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean],
      [boolean],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsConfiguration
    >(
      this,
      "lost_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      null,
    );
  }
  get missing_closed_caption(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, number, number],
    [boolean, number, number],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, number, number],
      [boolean, number, number],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsConfiguration
    >(
      this,
      "missing_closed_caption" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratinWithTiming,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratinWithTiming,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratinWithTiming,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratinWithTiming,
      },
      null,
    );
  }
  get missing_time_code(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, number, number],
    [boolean, number, number],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, number, number],
      [boolean, number, number],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsConfiguration
    >(
      this,
      "missing_time_code" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratinWithTiming,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratinWithTiming,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratinWithTiming,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratinWithTiming,
      },
      null,
    );
  }
}
export interface ClusterMetadataMonitoringObjectAlarmsEnable {
  not_assigned_source: boolean;
  lost_source: boolean;
  missing_closed_caption: boolean;
  missing_time_code: boolean;
}
export interface ClusterMetadataMonitoringObjectAlarmsSeverityLevel {
  not_assigned_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  lost_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  missing_closed_caption: VAPI.ClusterMonitoringObjects.SeverityLevel;
  missing_time_code: VAPI.ClusterMonitoringObjects.SeverityLevel;
}
export class ClusterMetadataMonitoringObjectConfiguration
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterMetadataMonitoringObjectConfiguration">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterMetadataMonitoringObjectConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get source_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.ClusterSources.MetadataSourceID,
    VAPI.ClusterSources.MetadataSourceID,
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.ClusterSources.MetadataSourceID,
      VAPI.ClusterSources.MetadataSourceID,
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectConfiguration
    >(
      this,
      "source_id" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get cc_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Video.ClosedCaptionMode,
    VAPI.Video.ClosedCaptionMode,
    VAPI.Video.ClosedCaptionMode,
    VAPI.Video.ClosedCaptionMode,
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Video.ClosedCaptionMode,
      VAPI.Video.ClosedCaptionMode,
      VAPI.Video.ClosedCaptionMode,
      VAPI.Video.ClosedCaptionMode,
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectConfiguration
    >(
      this,
      "cc_mode" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get cc_channel(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Video.ClosedCaptionChannel,
    VAPI.Video.ClosedCaptionChannel,
    VAPI.Video.ClosedCaptionChannel,
    VAPI.Video.ClosedCaptionChannel,
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Video.ClosedCaptionChannel,
      VAPI.Video.ClosedCaptionChannel,
      VAPI.Video.ClosedCaptionChannel,
      VAPI.Video.ClosedCaptionChannel,
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectConfiguration
    >(
      this,
      "cc_channel" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get alarms() {
    return VAPI.ClusterMonitoringObjects.lift.ClusterMetadataMonitoringObjectAlarmsConfiguration(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 3, "alarms"),
    );
  }
}
export interface ClusterMetadataMonitoringObjectRuntimeAlarms {
  not_assigned_source: boolean;
  lost_source: boolean;
  missing_closed_caption: boolean;
  missing_time_code: boolean;
}
export class ClusterMonitoringObjectAlarmsEnable
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterMonitoringObjectAlarmsEnable">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterMonitoringObjectAlarmsEnable" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get video(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, boolean, boolean, boolean, boolean, boolean],
    [boolean, boolean, boolean, boolean, boolean, boolean],
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsEnable,
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsEnable,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsEnable
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, boolean, boolean, boolean, boolean, boolean],
      [boolean, boolean, boolean, boolean, boolean, boolean],
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsEnable,
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsEnable,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsEnable
    >(
      this,
      "video" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterVideoMonitoringObjectAlarmsEnable,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterVideoMonitoringObjectAlarmsEnable,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterVideoMonitoringObjectAlarmsEnable,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterVideoMonitoringObjectAlarmsEnable,
      },
      null,
    );
  }
  get audio(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, boolean, boolean, boolean, boolean, boolean, boolean],
    [boolean, boolean, boolean, boolean, boolean, boolean, boolean],
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsEnable,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsEnable,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsEnable
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, boolean, boolean, boolean, boolean, boolean, boolean],
      [boolean, boolean, boolean, boolean, boolean, boolean, boolean],
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsEnable,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsEnable,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsEnable
    >(
      this,
      "audio" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterAudioMonitoringObjectAlarmsEnable,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterAudioMonitoringObjectAlarmsEnable,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterAudioMonitoringObjectAlarmsEnable,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterAudioMonitoringObjectAlarmsEnable,
      },
      null,
    );
  }
  get metadata(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, boolean, boolean, boolean],
    [boolean, boolean, boolean, boolean],
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsEnable,
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsEnable,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsEnable
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, boolean, boolean, boolean],
      [boolean, boolean, boolean, boolean],
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsEnable,
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsEnable,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsEnable
    >(
      this,
      "metadata" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterMetadataMonitoringObjectAlarmsEnable,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterMetadataMonitoringObjectAlarmsEnable,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterMetadataMonitoringObjectAlarmsEnable,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterMetadataMonitoringObjectAlarmsEnable,
      },
      null,
    );
  }
}
export class ClusterMonitoringObjectAlarmsSeverityLevel
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterMonitoringObjectAlarmsSeverityLevel">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterMonitoringObjectAlarmsSeverityLevel" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get video(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number, number],
    [number, number, number, number, number],
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsSeverityLevel,
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsSeverityLevel,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsSeverityLevel
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number, number],
      [number, number, number, number, number],
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsSeverityLevel,
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsSeverityLevel,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsSeverityLevel
    >(
      this,
      "video" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterVideoMonitoringObjectAlarmsSeverityLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterVideoMonitoringObjectAlarmsSeverityLevel,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterVideoMonitoringObjectAlarmsSeverityLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterVideoMonitoringObjectAlarmsSeverityLevel,
      },
      null,
    );
  }
  get audio(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number, number, number],
    [number, number, number, number, number, number],
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsSeverityLevel,
    VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsSeverityLevel,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsSeverityLevel
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number, number, number],
      [number, number, number, number, number, number],
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsSeverityLevel,
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectAlarmsSeverityLevel,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsSeverityLevel
    >(
      this,
      "audio" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterAudioMonitoringObjectAlarmsSeverityLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterAudioMonitoringObjectAlarmsSeverityLevel,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterAudioMonitoringObjectAlarmsSeverityLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterAudioMonitoringObjectAlarmsSeverityLevel,
      },
      null,
    );
  }
  get metadata(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsSeverityLevel,
    VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsSeverityLevel,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsSeverityLevel
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsSeverityLevel,
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectAlarmsSeverityLevel,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectAlarmsSeverityLevel
    >(
      this,
      "metadata" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterMetadataMonitoringObjectAlarmsSeverityLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterMetadataMonitoringObjectAlarmsSeverityLevel,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .ClusterMetadataMonitoringObjectAlarmsSeverityLevel,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .ClusterMetadataMonitoringObjectAlarmsSeverityLevel,
      },
      null,
    );
  }
}
export class ClusterMonitoringObjectGlobalConfiguration
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterMonitoringObjectGlobalConfiguration">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterMonitoringObjectGlobalConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get video() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "ClusterMonitoringObjects::Data::ClusterVideoMonitoringObjectConfiguration",
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectConfiguration
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(this.raw, 0, "video"),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.ClusterMonitoringObjects.lift.ClusterVideoMonitoringObjectConfiguration(
          st,
        ),
    );
  }
  get audio() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "ClusterMonitoringObjects::Data::ClusterAudioMonitoringObjectConfiguration",
      VAPI.ClusterMonitoringObjects.ClusterAudioMonitoringObjectConfiguration
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(this.raw, 1, "audio"),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.ClusterMonitoringObjects.lift.ClusterAudioMonitoringObjectConfiguration(
          st,
        ),
    );
  }
  get metadata() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "ClusterMonitoringObjects::Data::ClusterMetadataMonitoringObjectConfiguration",
      VAPI.ClusterMonitoringObjects.ClusterMetadataMonitoringObjectConfiguration
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(this.raw, 2, "metadata"),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.ClusterMonitoringObjects.lift.ClusterMetadataMonitoringObjectConfiguration(
          st,
        ),
    );
  }
  get user_alarms_enable(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectGlobalConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectGlobalConfiguration
    >(
      this,
      "user_alarms_enable" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get user_alarms() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "ClusterMonitoringObjects::Data::ClusterMonitoringObjectUserAlarmConfiguration",
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectUserAlarmConfiguration
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(
        this.raw,
        4,
        "user_alarms",
      ),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.ClusterMonitoringObjects.lift.ClusterMonitoringObjectUserAlarmConfiguration(
          st,
        ),
    );
  }
}
export class ClusterMonitoringObjectGlobalConfigurationAsNamedTableRow extends ClusterMonitoringObjectGlobalConfiguration {
  readonly index: number;
  constructor(
    readonly raw: VScript.DataViews.SubtreeNamedTableRow<VScript.VSocket>,
  ) {
    super(raw);
    this.index = raw.index;
  }
  async rename(name: string, opts?: VScript.CommonWriteOptions) {
    await this.raw.rename(name, opts);
  }
  async row_name(opts?: VScript.CommonCommandOptions) {
    return await this.raw.row_name(opts);
  }
  async delete(opts?: VScript.CommonWriteOptions) {
    await this.raw.delete(opts);
  }
}
export class ClusterMonitoringObjectUserAlarmConfiguration
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterMonitoringObjectUserAlarmConfiguration">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterMonitoringObjectUserAlarmConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get enable(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectUserAlarmConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectUserAlarmConfiguration
    >(
      this,
      "enable" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get severity_level(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.ClusterMonitoringObjects.SeverityLevel,
    VAPI.ClusterMonitoringObjects.SeverityLevel,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectUserAlarmConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.ClusterMonitoringObjects.SeverityLevel,
      VAPI.ClusterMonitoringObjects.SeverityLevel,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectUserAlarmConfiguration
    >(
      this,
      "severity_level" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get label(): VScript.rwKeyword<
    VScript.VSocket,
    string,
    string,
    string,
    string,
    VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectUserAlarmConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      string,
      string,
      string,
      string,
      VAPI.ClusterMonitoringObjects.ClusterMonitoringObjectUserAlarmConfiguration
    >(
      this,
      "label" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
}
export class ClusterVideoMonitoringObjectAlarmsConfiguration
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterVideoMonitoringObjectAlarmsConfiguration">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterVideoMonitoringObjectAlarmsConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get not_assigned_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean],
    [boolean],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean],
      [boolean],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
    >(
      this,
      "not_assigned_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      null,
    );
  }
  get lost_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean],
    [boolean],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean],
      [boolean],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
    >(
      this,
      "lost_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      null,
    );
  }
  get frozen_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, number, number],
    [boolean, number, number],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, number, number],
      [boolean, number, number],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
    >(
      this,
      "frozen_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratinWithTiming,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratinWithTiming,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratinWithTiming,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratinWithTiming,
      },
      null,
    );
  }
  get black_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, number, number],
    [boolean, number, number],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, number, number],
      [boolean, number, number],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratinWithTiming,
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
    >(
      this,
      "black_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratinWithTiming,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratinWithTiming,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratinWithTiming,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratinWithTiming,
      },
      null,
    );
  }
  get unexpected_source_standard(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean, VAPI.Video.Standard],
    [boolean, VAPI.Video.Standard],
    VAPI.ClusterMonitoringObjects.AlarmConfigurationWithVideoStandard,
    VAPI.ClusterMonitoringObjects.AlarmConfigurationWithVideoStandard,
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean, VAPI.Video.Standard],
      [boolean, VAPI.Video.Standard],
      VAPI.ClusterMonitoringObjects.AlarmConfigurationWithVideoStandard,
      VAPI.ClusterMonitoringObjects.AlarmConfigurationWithVideoStandard,
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
    >(
      this,
      "unexpected_source_standard" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .AlarmConfigurationWithVideoStandard,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .AlarmConfigurationWithVideoStandard,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift
          .AlarmConfigurationWithVideoStandard,
        lower:
          VAPI.ClusterMonitoringObjects.lower
            .AlarmConfigurationWithVideoStandard,
      },
      null,
    );
  }
  get tally_source(): VScript.rwKeyword<
    VScript.VSocket,
    [boolean],
    [boolean],
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [boolean],
      [boolean],
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.AlarmConfiguratin,
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectAlarmsConfiguration
    >(
      this,
      "tally_source" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.AlarmConfiguratin,
        lower: VAPI.ClusterMonitoringObjects.lower.AlarmConfiguratin,
      },
      null,
    );
  }
}
export interface ClusterVideoMonitoringObjectAlarmsEnable {
  not_assigned_source: boolean;
  lost_source: boolean;
  frozen_source: boolean;
  black_source: boolean;
  unexpected_source_standard: boolean;
  tally_source: boolean;
}
export interface ClusterVideoMonitoringObjectAlarmsSeverityLevel {
  not_assigned_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  lost_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  frozen_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  black_source: VAPI.ClusterMonitoringObjects.SeverityLevel;
  unexpected_source_standard: VAPI.ClusterMonitoringObjects.SeverityLevel;
}
export class ClusterVideoMonitoringObjectConfiguration
  implements
    VScript.Referenceable<"ClusterMonitoringObjects::Data::ClusterVideoMonitoringObjectConfiguration">
{
  readonly type_identifier =
    "ClusterMonitoringObjects::Data::ClusterVideoMonitoringObjectConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get source_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.ClusterSources.VideoSourceID,
    VAPI.ClusterSources.VideoSourceID,
    VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.ClusterSources.VideoSourceID,
      VAPI.ClusterSources.VideoSourceID,
      VAPI.ClusterMonitoringObjects.ClusterVideoMonitoringObjectConfiguration
    >(
      this,
      "source_id" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
  get alarms() {
    return VAPI.ClusterMonitoringObjects.lift.ClusterVideoMonitoringObjectAlarmsConfiguration(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "alarms"),
    );
  }
}
export interface ClusterVideoMonitoringObjectRuntimeAlarms {
  not_assigned_source: boolean;
  lost_source: boolean;
  frozen_source: boolean;
  black_source: boolean;
  unexpected_source_standard: boolean;
}
export interface MonitoringObjectChannelID {
  id: VAPI.ClusterMonitoringObjects.MonitoringObjectID;
  channel_id: number;
}
export type MonitoringObjectID = number;
export type SeverityLevel = number;
export type TIMECODE = "LTC" | "VTC1" | "VTC2";
export type TUnsignedMax = number;
export const Enums = {
  TIMECODE: ["LTC", "VTC1", "VTC2"] as TIMECODE[],
  COMBINEFUNCTION: ["OR", "AND"] as COMBINEFUNCTION[],
} as const;
