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 = {
  ALARMSSEVERITYLEVELS: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new ALARMSSEVERITYLEVELS(_raw),
  ALARMSEVERITYLEVEL: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new ALARMSEVERITYLEVEL(_raw),
  ANALOGCLOCK: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new ANALOGCLOCK(_raw),
  AUTOMONITORINGSETTINGS: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new AUTOMONITORINGSETTINGS(_raw),
  All: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) => new All(_raw),
  PPMSCALESETTINGSBBCRange: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new PPMSCALESETTINGSBBCRange(_raw),
  BORDER: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new BORDER(_raw),
  BORDERGEOMETRY: (
    _raw: [number, number, VAPI.Multiviewer.BORDERRADIUSCORNERS],
    _socket: VScript.VSocket,
  ): BORDERGEOMETRY => {
    return {
      width: _raw[0],
      radius: _raw[1],
      radius_corners: _raw[2],
    };
  },
  BOX: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) => new BOX(_raw),
  CLOCKTIME: (
    _raw: [number, number, number],
    _socket: VScript.VSocket,
  ): CLOCKTIME => {
    return {
      seconds: _raw[0],
      minutes: _raw[1],
      hours: _raw[2],
    };
  },
  CLOCKTIMESETTINGS: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new CLOCKTIMESETTINGS(_raw),
  CLOSEDCAPTION: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new CLOSEDCAPTION(_raw),
  CLOSEDCAPTIONPARAMETERS: (
    _raw: [number, number, number, number],
    _socket: VScript.VSocket,
  ): CLOSEDCAPTIONPARAMETERS => {
    return {
      width_zoom: _raw[0],
      height_zoom: _raw[1],
      x_offset: _raw[2],
      y_offset: _raw[3],
    };
  },
  CROP: (
    _raw: [number, number, number, number],
    _socket: VScript.VSocket,
  ): CROP => {
    return {
      left: _raw[0],
      right: _raw[1],
      top: _raw[2],
      bottom: _raw[3],
    };
  },
  DIGITALCLOCK: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new DIGITALCLOCK(_raw),
  PPMSCALESETTINGSDINRange: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new PPMSCALESETTINGSDINRange(_raw),
  FONT: (
    _raw: [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
    _socket: VScript.VSocket,
  ): FONT => {
    return {
      font_family: _raw[0],
      font_style: _raw[1],
    };
  },
  GEOMETRY: (
    _raw: [number, number, number, number, number],
    _socket: VScript.VSocket,
  ): GEOMETRY => {
    return {
      posx: _raw[0],
      posy: _raw[1],
      width: _raw[2],
      height: _raw[3],
      depth: _raw[4],
    };
  },
  HSLCOLOUR: (
    _raw: [number, number, number],
    _socket: VScript.VSocket,
  ): HSLCOLOUR => {
    return {
      hue: _raw[0],
      saturation: _raw[1],
      lightness: _raw[2],
    };
  },
  HSLCOLOURWITHOPACITY: (
    _raw: [number, number, number, number],
    _socket: VScript.VSocket,
  ): HSLCOLOURWITHOPACITY => {
    return {
      hue: _raw[0],
      saturation: _raw[1],
      lightness: _raw[2],
      opacity: _raw[3],
    };
  },
  IMAGE: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) => new IMAGE(_raw),
  LABEL: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) => new LABEL(_raw),
  LABELDUAL: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new LABELDUAL(_raw),
  LoadValue: (_raw: [number, number], _socket: VScript.VSocket): LoadValue => {
    return {
      value: _raw[0],
      percents: _raw[1],
    };
  },
  MD: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) => new MD(_raw),
  MDCELL: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new MDCELL(_raw),
  ManifoldCoreRasterizerStatistics: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ManifoldCoreRasterizerStatistics(_raw),
  ManifoldCoreStatistics: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new ManifoldCoreStatistics(_raw),
  ManifoldMemoryStatistics: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ManifoldMemoryStatistics(_raw),
  MultiviewerGlobal: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new MultiviewerGlobal(_raw),
  MultiviewerGlobalConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerGlobalConfiguration(_raw),
  MultiviewerGlobalConfigurationParameters: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerGlobalConfigurationParameters(_raw),
  MultiviewerGlobalRuntime: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerGlobalRuntime(_raw),
  MultiviewerHeadGlobalConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerHeadGlobalConfiguration(_raw),
  MultiviewerHeadGlobalParameters: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerHeadGlobalParameters(_raw),
  MultiviewerHeadGlobalRuntime: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerHeadGlobalRuntime(_raw),
  MultiviewerHeadLayout: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new MultiviewerHeadLayout(_raw),
  MultiviewerHeadLocalRuntime: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerHeadLocalRuntime(_raw),
  MultiviewerHeadStreamingConfiguration: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerHeadStreamingConfiguration(_raw),
  MultiviewerLocal: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new MultiviewerLocal(_raw),
  MultiviewerLocalRuntime: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new MultiviewerLocalRuntime(_raw),
  MultiviewerPIPGlobalRuntime: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerPIPGlobalRuntime(_raw),
  MultiviewerPIPLocalRuntime: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new MultiviewerPIPLocalRuntime(_raw),
  MultiviewerStatistics: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new MultiviewerStatistics(_raw),
  PPMSCALESETTINGSNordicRange: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new PPMSCALESETTINGSNordicRange(_raw),
  PIP: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) => new PIP(_raw),
  PIPPPM: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new PIPPPM(_raw),
  PIPROUTING: (
    _raw: [number, number, number, number],
    _socket: VScript.VSocket,
  ): PIPROUTING => {
    return {
      video_texture_width: _raw[0],
      video_texture_height: _raw[1],
      video_texture_input_id: _raw[2],
      video_texture_input_rl_id: _raw[3],
    };
  },
  PIPTALLYRULESSETTINGS: (
    _raw: [
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
    ],
    _socket: VScript.VSocket,
  ): PIPTALLYRULESSETTINGS => {
    return {
      bgnd_tally_rules_mask: _raw[0],
      bgnd_border_tally_rules_mask: _raw[1],
      video_border_tally_rules_mask: _raw[2],
      umd_0_tally_rules_mask: _raw[3],
      umd_0_border_tally_rules_mask: _raw[4],
      umd_0_label_tally_rules_mask: _raw[5],
      umd_1_tally_rules_mask: _raw[6],
      umd_1_border_tally_rules_mask: _raw[7],
      umd_1_label_tally_rules_mask: _raw[8],
      umd_2_tally_rules_mask: _raw[9],
      umd_2_border_tally_rules_mask: _raw[10],
      umd_2_label_tally_rules_mask: _raw[11],
      omd_0_tally_rules_mask: _raw[12],
      omd_0_border_tally_rules_mask: _raw[13],
      omd_0_label_tally_rules_mask: _raw[14],
      omd_1_tally_rules_mask: _raw[15],
      omd_1_border_tally_rules_mask: _raw[16],
      omd_1_label_tally_rules_mask: _raw[17],
      omd_2_tally_rules_mask: _raw[18],
      omd_2_border_tally_rules_mask: _raw[19],
      omd_2_label_tally_rules_mask: _raw[20],
      left_lamp_tally_rules_mask: _raw[21],
      left_lamp_border_tally_rules_mask: _raw[22],
      right_lamp_tally_rules_mask: _raw[23],
      right_lamp_border_tally_rules_mask: _raw[24],
    };
  },
  PIPTALLYSETTINGS: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new PIPTALLYSETTINGS(_raw),
  PPMSCALESETTINGS: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new PPMSCALESETTINGS(_raw),
  PPMSETTINGS: (
    _raw: [
      VAPI.Multiviewer.PPMDisplayMode,
      VAPI.Multiviewer.PPMScalePosition,
      VAPI.Multiviewer.PPMScaleType,
      VAPI.Multiviewer.PEAKHOLDTIME,
      VAPI.Multiviewer.PEAKHOLDDECAY,
      VAPI.Multiviewer.PPMDECAY,
      number,
      number,
      number,
      number,
      number,
      number,
    ],
    _socket: VScript.VSocket,
  ): PPMSETTINGS => {
    return {
      display_mode: _raw[0],
      scale_position: _raw[1],
      scale_type: _raw[2],
      peak_hold: _raw[3],
      peak_hold_decay: _raw[4],
      ppm_decay: _raw[5],
      width: _raw[6],
      opacity: _raw[7],
      scale_size: _raw[8],
      channel_spacing_size: _raw[9],
      leds_size: _raw[10],
      leds_spacing_size: _raw[11],
    };
  },
  RLBLOCKSTATISTICS: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new RLBLOCKSTATISTICS(_raw),
  STANDALONEPPM: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new STANDALONEPPM(_raw),
  STOPWATCHCMD: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new STOPWATCHCMD(_raw),
  STOPWATCHSETTINGS: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new STOPWATCHSETTINGS(_raw),
  TALLYLAMPS: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new TALLYLAMPS(_raw),
  TALLYRULE: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new TALLYRULE(_raw),
  TALLYRULES: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new TALLYRULES(_raw),
  TEXTBOX: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new TEXTBOX(_raw),
  TMPREMOVEDFROMPIPStruct: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new TMPREMOVEDFROMPIPStruct(_raw),
  PPMSCALESETTINGSDBFSRange: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new PPMSCALESETTINGSDBFSRange(_raw),
} as const;
export const lower = {
  ALARMSSEVERITYLEVELS: (_x: ALARMSSEVERITYLEVELS) => _x.raw.kwl,
  ALARMSEVERITYLEVEL: (_x: ALARMSEVERITYLEVEL) => _x.raw.kwl,
  ANALOGCLOCK: (_x: ANALOGCLOCK) => _x.raw.kwl,
  AUTOMONITORINGSETTINGS: (_x: AUTOMONITORINGSETTINGS) => _x.raw.kwl,
  All: (_x: All) => _x.raw.kwl,
  PPMSCALESETTINGSBBCRange: (_x: PPMSCALESETTINGSBBCRange) => _x.raw.kwl,
  BORDER: (_x: BORDER) => _x.raw.kwl,
  BORDERGEOMETRY: (
    _x: {
      width: number;
      radius: number;
      radius_corners: VAPI.Multiviewer.BORDERRADIUSCORNERS;
    },
    _socket: VScript.VSocket,
  ): [number, number, VAPI.Multiviewer.BORDERRADIUSCORNERS] => [
    _x.width,
    _x.radius,
    _x.radius_corners,
  ],
  BOX: (_x: BOX) => _x.raw.kwl,
  CLOCKTIME: (
    _x: { seconds: number; minutes: number; hours: number },
    _socket: VScript.VSocket,
  ): [number, number, number] => [_x.seconds, _x.minutes, _x.hours],
  CLOCKTIMESETTINGS: (_x: CLOCKTIMESETTINGS) => _x.raw.kwl,
  CLOSEDCAPTION: (_x: CLOSEDCAPTION) => _x.raw.kwl,
  CLOSEDCAPTIONPARAMETERS: (
    _x: {
      width_zoom: number;
      height_zoom: number;
      x_offset: number;
      y_offset: number;
    },
    _socket: VScript.VSocket,
  ): [number, number, number, number] => [
    _x.width_zoom,
    _x.height_zoom,
    _x.x_offset,
    _x.y_offset,
  ],
  CROP: (
    _x: {
      left: VAPI.Multiviewer.WidthZero;
      right: VAPI.Multiviewer.WidthZero;
      top: VAPI.Multiviewer.HeightZero;
      bottom: VAPI.Multiviewer.HeightZero;
    },
    _socket: VScript.VSocket,
  ): [number, number, number, number] => [_x.left, _x.right, _x.top, _x.bottom],
  DIGITALCLOCK: (_x: DIGITALCLOCK) => _x.raw.kwl,
  PPMSCALESETTINGSDINRange: (_x: PPMSCALESETTINGSDINRange) => _x.raw.kwl,
  FONT: (
    _x: {
      font_family: VAPI.Multiviewer.FONTFAMILY;
      font_style: VAPI.Multiviewer.FONTSTYLE;
    },
    _socket: VScript.VSocket,
  ): [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE] => [
    _x.font_family,
    _x.font_style,
  ],
  GEOMETRY: (
    _x: {
      posx: VAPI.Multiviewer.VirtualXY;
      posy: VAPI.Multiviewer.VirtualXY;
      width: VAPI.Multiviewer.Width;
      height: VAPI.Multiviewer.Height;
      depth: number;
    },
    _socket: VScript.VSocket,
  ): [number, number, number, number, number] => [
    _x.posx,
    _x.posy,
    _x.width,
    _x.height,
    _x.depth,
  ],
  HSLCOLOUR: (
    _x: { hue: number; saturation: number; lightness: number },
    _socket: VScript.VSocket,
  ): [number, number, number] => [_x.hue, _x.saturation, _x.lightness],
  HSLCOLOURWITHOPACITY: (
    _x: { hue: number; saturation: number; lightness: number; opacity: number },
    _socket: VScript.VSocket,
  ): [number, number, number, number] => [
    _x.hue,
    _x.saturation,
    _x.lightness,
    _x.opacity,
  ],
  IMAGE: (_x: IMAGE) => _x.raw.kwl,
  LABEL: (_x: LABEL) => _x.raw.kwl,
  LABELDUAL: (_x: LABELDUAL) => _x.raw.kwl,
  LoadValue: (
    _x: {
      value: VAPI.Multiviewer.TUnsignedMax;
      percents: VAPI.Multiviewer.TUnsignedMax;
    },
    _socket: VScript.VSocket,
  ): [number, number] => [_x.value, _x.percents],
  MD: (_x: MD) => _x.raw.kwl,
  MDCELL: (_x: MDCELL) => _x.raw.kwl,
  ManifoldCoreRasterizerStatistics: (_x: ManifoldCoreRasterizerStatistics) =>
    _x.raw.kwl,
  ManifoldCoreStatistics: (_x: ManifoldCoreStatistics) => _x.raw.kwl,
  ManifoldMemoryStatistics: (_x: ManifoldMemoryStatistics) => _x.raw.kwl,
  MultiviewerGlobal: (_x: MultiviewerGlobal) => _x.raw.kwl,
  MultiviewerGlobalConfiguration: (_x: MultiviewerGlobalConfiguration) =>
    _x.raw.kwl,
  MultiviewerGlobalConfigurationParameters: (
    _x: MultiviewerGlobalConfigurationParameters,
  ) => _x.raw.kwl,
  MultiviewerGlobalRuntime: (_x: MultiviewerGlobalRuntime) => _x.raw.kwl,
  MultiviewerHeadGlobalConfiguration: (
    _x: MultiviewerHeadGlobalConfiguration,
  ) => _x.raw.kwl,
  MultiviewerHeadGlobalParameters: (_x: MultiviewerHeadGlobalParameters) =>
    _x.raw.kwl,
  MultiviewerHeadGlobalRuntime: (_x: MultiviewerHeadGlobalRuntime) =>
    _x.raw.kwl,
  MultiviewerHeadLayout: (_x: MultiviewerHeadLayout) => _x.raw.kwl,
  MultiviewerHeadLocalRuntime: (_x: MultiviewerHeadLocalRuntime) => _x.raw.kwl,
  MultiviewerHeadStreamingConfiguration: (
    _x: MultiviewerHeadStreamingConfiguration,
  ) => _x.raw.kwl,
  MultiviewerLocal: (_x: MultiviewerLocal) => _x.raw.kwl,
  MultiviewerLocalRuntime: (_x: MultiviewerLocalRuntime) => _x.raw.kwl,
  MultiviewerPIPGlobalRuntime: (_x: MultiviewerPIPGlobalRuntime) => _x.raw.kwl,
  MultiviewerPIPLocalRuntime: (_x: MultiviewerPIPLocalRuntime) => _x.raw.kwl,
  MultiviewerStatistics: (_x: MultiviewerStatistics) => _x.raw.kwl,
  PPMSCALESETTINGSNordicRange: (_x: PPMSCALESETTINGSNordicRange) => _x.raw.kwl,
  PIP: (_x: PIP) => _x.raw.kwl,
  PIPPPM: (_x: PIPPPM) => _x.raw.kwl,
  PIPROUTING: (
    _x: {
      video_texture_width: number;
      video_texture_height: number;
      video_texture_input_id: number;
      video_texture_input_rl_id: number;
    },
    _socket: VScript.VSocket,
  ): [number, number, number, number] => [
    _x.video_texture_width,
    _x.video_texture_height,
    _x.video_texture_input_id,
    _x.video_texture_input_rl_id,
  ],
  PIPTALLYRULESSETTINGS: (
    _x: {
      bgnd_tally_rules_mask: number;
      bgnd_border_tally_rules_mask: number;
      video_border_tally_rules_mask: number;
      umd_0_tally_rules_mask: number;
      umd_0_border_tally_rules_mask: number;
      umd_0_label_tally_rules_mask: number;
      umd_1_tally_rules_mask: number;
      umd_1_border_tally_rules_mask: number;
      umd_1_label_tally_rules_mask: number;
      umd_2_tally_rules_mask: number;
      umd_2_border_tally_rules_mask: number;
      umd_2_label_tally_rules_mask: number;
      omd_0_tally_rules_mask: number;
      omd_0_border_tally_rules_mask: number;
      omd_0_label_tally_rules_mask: number;
      omd_1_tally_rules_mask: number;
      omd_1_border_tally_rules_mask: number;
      omd_1_label_tally_rules_mask: number;
      omd_2_tally_rules_mask: number;
      omd_2_border_tally_rules_mask: number;
      omd_2_label_tally_rules_mask: number;
      left_lamp_tally_rules_mask: number;
      left_lamp_border_tally_rules_mask: number;
      right_lamp_tally_rules_mask: number;
      right_lamp_border_tally_rules_mask: number;
    },
    _socket: VScript.VSocket,
  ): [
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
  ] => [
    _x.bgnd_tally_rules_mask,
    _x.bgnd_border_tally_rules_mask,
    _x.video_border_tally_rules_mask,
    _x.umd_0_tally_rules_mask,
    _x.umd_0_border_tally_rules_mask,
    _x.umd_0_label_tally_rules_mask,
    _x.umd_1_tally_rules_mask,
    _x.umd_1_border_tally_rules_mask,
    _x.umd_1_label_tally_rules_mask,
    _x.umd_2_tally_rules_mask,
    _x.umd_2_border_tally_rules_mask,
    _x.umd_2_label_tally_rules_mask,
    _x.omd_0_tally_rules_mask,
    _x.omd_0_border_tally_rules_mask,
    _x.omd_0_label_tally_rules_mask,
    _x.omd_1_tally_rules_mask,
    _x.omd_1_border_tally_rules_mask,
    _x.omd_1_label_tally_rules_mask,
    _x.omd_2_tally_rules_mask,
    _x.omd_2_border_tally_rules_mask,
    _x.omd_2_label_tally_rules_mask,
    _x.left_lamp_tally_rules_mask,
    _x.left_lamp_border_tally_rules_mask,
    _x.right_lamp_tally_rules_mask,
    _x.right_lamp_border_tally_rules_mask,
  ],
  PIPTALLYSETTINGS: (_x: PIPTALLYSETTINGS) => _x.raw.kwl,
  PPMSCALESETTINGS: (_x: PPMSCALESETTINGS) => _x.raw.kwl,
  PPMSETTINGS: (
    _x: {
      display_mode: VAPI.Multiviewer.PPMDisplayMode;
      scale_position: VAPI.Multiviewer.PPMScalePosition;
      scale_type: VAPI.Multiviewer.PPMScaleType;
      peak_hold: VAPI.Multiviewer.PEAKHOLDTIME;
      peak_hold_decay: VAPI.Multiviewer.PEAKHOLDDECAY;
      ppm_decay: VAPI.Multiviewer.PPMDECAY;
      width: number;
      opacity: number;
      scale_size: number;
      channel_spacing_size: number;
      leds_size: number;
      leds_spacing_size: number;
    },
    _socket: VScript.VSocket,
  ): [
    VAPI.Multiviewer.PPMDisplayMode,
    VAPI.Multiviewer.PPMScalePosition,
    VAPI.Multiviewer.PPMScaleType,
    VAPI.Multiviewer.PEAKHOLDTIME,
    VAPI.Multiviewer.PEAKHOLDDECAY,
    VAPI.Multiviewer.PPMDECAY,
    number,
    number,
    number,
    number,
    number,
    number,
  ] => [
    _x.display_mode,
    _x.scale_position,
    _x.scale_type,
    _x.peak_hold,
    _x.peak_hold_decay,
    _x.ppm_decay,
    _x.width,
    _x.opacity,
    _x.scale_size,
    _x.channel_spacing_size,
    _x.leds_size,
    _x.leds_spacing_size,
  ],
  RLBLOCKSTATISTICS: (_x: RLBLOCKSTATISTICS) => _x.raw.kwl,
  STANDALONEPPM: (_x: STANDALONEPPM) => _x.raw.kwl,
  STOPWATCHCMD: (_x: STOPWATCHCMD) => _x.raw.kwl,
  STOPWATCHSETTINGS: (_x: STOPWATCHSETTINGS) => _x.raw.kwl,
  TALLYLAMPS: (_x: TALLYLAMPS) => _x.raw.kwl,
  TALLYRULE: (_x: TALLYRULE) => _x.raw.kwl,
  TALLYRULES: (_x: TALLYRULES) => _x.raw.kwl,
  TEXTBOX: (_x: TEXTBOX) => _x.raw.kwl,
  TMPREMOVEDFROMPIPStruct: (_x: TMPREMOVEDFROMPIPStruct) => _x.raw.kwl,
  PPMSCALESETTINGSDBFSRange: (_x: PPMSCALESETTINGSDBFSRange) => _x.raw.kwl,
} as const;
export class ALARMSSEVERITYLEVELS
  implements VScript.Referenceable<"Multiviewer::Data::ALARMSSEVERITYLEVELS">
{
  readonly type_identifier = "Multiviewer::Data::ALARMSSEVERITYLEVELS" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get severity_level_0() {
    return VAPI.Multiviewer.lift.ALARMSEVERITYLEVEL(
      VScript.VAPIHelpers.subtree_child_checked(
        this.raw,
        0,
        "severity_level_0",
      ),
    );
  }
  get severity_level_1() {
    return VAPI.Multiviewer.lift.ALARMSEVERITYLEVEL(
      VScript.VAPIHelpers.subtree_child_checked(
        this.raw,
        1,
        "severity_level_1",
      ),
    );
  }
  get severity_level_2() {
    return VAPI.Multiviewer.lift.ALARMSEVERITYLEVEL(
      VScript.VAPIHelpers.subtree_child_checked(
        this.raw,
        2,
        "severity_level_2",
      ),
    );
  }
  get severity_level_3() {
    return VAPI.Multiviewer.lift.ALARMSEVERITYLEVEL(
      VScript.VAPIHelpers.subtree_child_checked(
        this.raw,
        3,
        "severity_level_3",
      ),
    );
  }
  get severity_level_4() {
    return VAPI.Multiviewer.lift.ALARMSEVERITYLEVEL(
      VScript.VAPIHelpers.subtree_child_checked(
        this.raw,
        4,
        "severity_level_4",
      ),
    );
  }
  get border_width(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.ALARMSSEVERITYLEVELS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.ALARMSSEVERITYLEVELS
    >(
      this,
      "border_width" 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 ALARMSEVERITYLEVEL
  implements VScript.Referenceable<"Multiviewer::Data::ALARMSEVERITYLEVEL">
{
  readonly type_identifier = "Multiviewer::Data::ALARMSEVERITYLEVEL" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get font_colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.ALARMSEVERITYLEVEL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.ALARMSEVERITYLEVEL
    >(
      this,
      "font_colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
  get bgnd_colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.ALARMSEVERITYLEVEL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.ALARMSEVERITYLEVEL
    >(
      this,
      "bgnd_colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
}
export type ALIGNMENT = "INSIDE" | "OUTSIDE";
export class ANALOGCLOCK
  implements VScript.Referenceable<"Multiviewer::Data::ANALOGCLOCK">
{
  readonly type_identifier = "Multiviewer::Data::ANALOGCLOCK" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get display_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.ANALOGCLOCK
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.ANALOGCLOCK
    >(
      this,
      "display_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 geometry(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number, number],
    [number, number, number, number, number],
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.ANALOGCLOCK
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number, number],
      [number, number, number, number, number],
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.ANALOGCLOCK
    >(
      this,
      "geometry" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      null,
    );
  }
  get time_settings() {
    return VAPI.Multiviewer.lift.CLOCKTIMESETTINGS(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 2, "time_settings"),
    );
  }
  get theme(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.ANALOGCLOCK
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.ANALOGCLOCK
    >(
      this,
      "theme" 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 ANALOGCLOCKAsNamedTableRow extends ANALOGCLOCK {
  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 AUTOMONITORINGSETTINGS
  implements VScript.Referenceable<"Multiviewer::Data::AUTOMONITORINGSETTINGS">
{
  readonly type_identifier =
    "Multiviewer::Data::AUTOMONITORINGSETTINGS" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get first_monitoring_object_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.ClusterMonitoringObjects.MonitoringObjectID,
    VAPI.ClusterMonitoringObjects.MonitoringObjectID,
    VAPI.Multiviewer.AUTOMONITORINGSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.ClusterMonitoringObjects.MonitoringObjectID,
      VAPI.ClusterMonitoringObjects.MonitoringObjectID,
      VAPI.Multiviewer.AUTOMONITORINGSETTINGS
    >(
      this,
      "first_monitoring_object_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 last_monitoring_object_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.ClusterMonitoringObjects.MonitoringObjectID,
    VAPI.ClusterMonitoringObjects.MonitoringObjectID,
    VAPI.Multiviewer.AUTOMONITORINGSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.ClusterMonitoringObjects.MonitoringObjectID,
      VAPI.ClusterMonitoringObjects.MonitoringObjectID,
      VAPI.Multiviewer.AUTOMONITORINGSETTINGS
    >(
      this,
      "last_monitoring_object_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,
    );
  }
}
export class All implements VScript.Referenceable<"Multiviewer::Data::All"> {
  readonly type_identifier = "Multiviewer::Data::All" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get global() {
    return VAPI.Multiviewer.lift.MultiviewerGlobal(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 0, "global"),
    );
  }
  get local() {
    return VAPI.Multiviewer.lift.MultiviewerLocal(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "local"),
    );
  }
}
export class PPMSCALESETTINGSBBCRange
  implements
    VScript.Referenceable<"Multiviewer::Data::PPMSCALESETTINGS::BBCRange">
{
  readonly type_identifier =
    "Multiviewer::Data::PPMSCALESETTINGS::BBCRange" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get safe_area(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSBBCRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSBBCRange
    >(
      this,
      "safe_area" 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 operation_area(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSBBCRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSBBCRange
    >(
      this,
      "operation_area" 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 min_level(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSBBCRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSBBCRange
    >(
      this,
      "min_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 max_level(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSBBCRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSBBCRange
    >(
      this,
      "max_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,
    );
  }
}
export class BORDER
  implements VScript.Referenceable<"Multiviewer::Data::BORDER">
{
  readonly type_identifier = "Multiviewer::Data::BORDER" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get geometry(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, VAPI.Multiviewer.BORDERRADIUSCORNERS],
    [number, number, VAPI.Multiviewer.BORDERRADIUSCORNERS],
    VAPI.Multiviewer.BORDERGEOMETRY,
    VAPI.Multiviewer.BORDERGEOMETRY,
    VAPI.Multiviewer.BORDER
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, VAPI.Multiviewer.BORDERRADIUSCORNERS],
      [number, number, VAPI.Multiviewer.BORDERRADIUSCORNERS],
      VAPI.Multiviewer.BORDERGEOMETRY,
      VAPI.Multiviewer.BORDERGEOMETRY,
      VAPI.Multiviewer.BORDER
    >(
      this,
      "geometry" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.BORDERGEOMETRY,
        lower: VAPI.Multiviewer.lower.BORDERGEOMETRY,
      },
      {
        lift: VAPI.Multiviewer.lift.BORDERGEOMETRY,
        lower: VAPI.Multiviewer.lower.BORDERGEOMETRY,
      },
      null,
    );
  }
  get colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.BORDER
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.BORDER
    >(
      this,
      "colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
}
export interface BORDERGEOMETRY {
  width: number;
  radius: number;
  radius_corners: VAPI.Multiviewer.BORDERRADIUSCORNERS;
}
export type BORDERRADIUSCORNERS =
  | "All"
  | "Top"
  | "Bottom"
  | "Left"
  | "Right"
  | "TopLeft"
  | "TopRight"
  | "BottomLeft"
  | "BottomRight";
export class BOX implements VScript.Referenceable<"Multiviewer::Data::BOX"> {
  readonly type_identifier = "Multiviewer::Data::BOX" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get bgnd_colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.BOX
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.BOX
    >(
      this,
      "bgnd_colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
  get border() {
    return VAPI.Multiviewer.lift.BORDER(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "border"),
    );
  }
}
export interface CLOCKTIME {
  seconds: number;
  minutes: number;
  hours: number;
}
export class CLOCKTIMESETTINGS
  implements VScript.Referenceable<"Multiviewer::Data::CLOCKTIMESETTINGS">
{
  readonly type_identifier = "Multiviewer::Data::CLOCKTIMESETTINGS" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get metadata_monitoring_object_id(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number],
    [number, number],
    VAPI.ClusterMonitoringObjects.MonitoringObjectChannelID,
    VAPI.ClusterMonitoringObjects.MonitoringObjectChannelID,
    VAPI.Multiviewer.CLOCKTIMESETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number],
      [number, number],
      VAPI.ClusterMonitoringObjects.MonitoringObjectChannelID,
      VAPI.ClusterMonitoringObjects.MonitoringObjectChannelID,
      VAPI.Multiviewer.CLOCKTIMESETTINGS
    >(
      this,
      "metadata_monitoring_object_id" as VScript.SysName,
      {
        lift: VAPI.ClusterMonitoringObjects.lift.MonitoringObjectChannelID,
        lower: VAPI.ClusterMonitoringObjects.lower.MonitoringObjectChannelID,
      },
      {
        lift: VAPI.ClusterMonitoringObjects.lift.MonitoringObjectChannelID,
        lower: VAPI.ClusterMonitoringObjects.lower.MonitoringObjectChannelID,
      },
      null,
    );
  }
  get timecode_select(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.ClusterMonitoringObjects.TIMECODE,
    VAPI.ClusterMonitoringObjects.TIMECODE,
    VAPI.ClusterMonitoringObjects.TIMECODE,
    VAPI.ClusterMonitoringObjects.TIMECODE,
    VAPI.Multiviewer.CLOCKTIMESETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.ClusterMonitoringObjects.TIMECODE,
      VAPI.ClusterMonitoringObjects.TIMECODE,
      VAPI.ClusterMonitoringObjects.TIMECODE,
      VAPI.ClusterMonitoringObjects.TIMECODE,
      VAPI.Multiviewer.CLOCKTIMESETTINGS
    >(
      this,
      "timecode_select" 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 timezone_offset(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number],
    [number, number, number],
    VAPI.Multiviewer.CLOCKTIME,
    VAPI.Multiviewer.CLOCKTIME,
    VAPI.Multiviewer.CLOCKTIMESETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number],
      [number, number, number],
      VAPI.Multiviewer.CLOCKTIME,
      VAPI.Multiviewer.CLOCKTIME,
      VAPI.Multiviewer.CLOCKTIMESETTINGS
    >(
      this,
      "timezone_offset" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.CLOCKTIME,
        lower: VAPI.Multiviewer.lower.CLOCKTIME,
      },
      {
        lift: VAPI.Multiviewer.lift.CLOCKTIME,
        lower: VAPI.Multiviewer.lower.CLOCKTIME,
      },
      null,
    );
  }
}
export class CLOSEDCAPTION
  implements VScript.Referenceable<"Multiviewer::Data::CLOSEDCAPTION">
{
  readonly type_identifier = "Multiviewer::Data::CLOSEDCAPTION" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get enable(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.CLOSEDCAPTION
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.CLOSEDCAPTION
    >(
      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 bgnd() {
    return VAPI.Multiviewer.lift.BOX(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "bgnd"),
    );
  }
  get safe_area(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.CLOSEDCAPTION
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.CLOSEDCAPTION
    >(
      this,
      "safe_area" 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 column_offset(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.CLOSEDCAPTION
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.CLOSEDCAPTION
    >(
      this,
      "column_offset" 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 row_offset(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.CLOSEDCAPTION
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.CLOSEDCAPTION
    >(
      this,
      "row_offset" 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 font_bgnd_opacity(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.CLOSEDCAPTION
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.CLOSEDCAPTION
    >(
      this,
      "font_bgnd_opacity" 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 font(): VScript.rwKeyword<
    VScript.VSocket,
    [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
    [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
    VAPI.Multiviewer.FONT,
    VAPI.Multiviewer.FONT,
    VAPI.Multiviewer.CLOSEDCAPTION
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
      [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
      VAPI.Multiviewer.FONT,
      VAPI.Multiviewer.FONT,
      VAPI.Multiviewer.CLOSEDCAPTION
    >(
      this,
      "font" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.FONT,
        lower: VAPI.Multiviewer.lower.FONT,
      },
      {
        lift: VAPI.Multiviewer.lift.FONT,
        lower: VAPI.Multiviewer.lower.FONT,
      },
      null,
    );
  }
}
export interface CLOSEDCAPTIONPARAMETERS {
  width_zoom: number;
  height_zoom: number;
  x_offset: number;
  y_offset: number;
}
export interface CROP {
  left: VAPI.Multiviewer.WidthZero;
  right: VAPI.Multiviewer.WidthZero;
  top: VAPI.Multiviewer.HeightZero;
  bottom: VAPI.Multiviewer.HeightZero;
}
export class DIGITALCLOCK
  implements VScript.Referenceable<"Multiviewer::Data::DIGITALCLOCK">
{
  readonly type_identifier = "Multiviewer::Data::DIGITALCLOCK" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get display_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DIGITALCLOCK
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DIGITALCLOCK
    >(
      this,
      "display_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 geometry(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number, number],
    [number, number, number, number, number],
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.DIGITALCLOCK
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number, number],
      [number, number, number, number, number],
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.DIGITALCLOCK
    >(
      this,
      "geometry" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      null,
    );
  }
  get time_settings() {
    return VAPI.Multiviewer.lift.CLOCKTIMESETTINGS(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 2, "time_settings"),
    );
  }
  get stopwatch() {
    return VAPI.Multiviewer.lift.STOPWATCHSETTINGS(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 3, "stopwatch"),
    );
  }
  get time_format(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.TIMEFORMAT,
    VAPI.Multiviewer.TIMEFORMAT,
    VAPI.Multiviewer.TIMEFORMAT,
    VAPI.Multiviewer.TIMEFORMAT,
    VAPI.Multiviewer.DIGITALCLOCK
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.TIMEFORMAT,
      VAPI.Multiviewer.TIMEFORMAT,
      VAPI.Multiviewer.TIMEFORMAT,
      VAPI.Multiviewer.TIMEFORMAT,
      VAPI.Multiviewer.DIGITALCLOCK
    >(
      this,
      "time_format" 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 bgnd() {
    return VAPI.Multiviewer.lift.BOX(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 5, "bgnd"),
    );
  }
  get digit_font_colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.DIGITALCLOCK
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.DIGITALCLOCK
    >(
      this,
      "digit_font_colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
  get digit_font(): VScript.rwKeyword<
    VScript.VSocket,
    [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
    [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
    VAPI.Multiviewer.FONT,
    VAPI.Multiviewer.FONT,
    VAPI.Multiviewer.DIGITALCLOCK
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
      [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
      VAPI.Multiviewer.FONT,
      VAPI.Multiviewer.FONT,
      VAPI.Multiviewer.DIGITALCLOCK
    >(
      this,
      "digit_font" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.FONT,
        lower: VAPI.Multiviewer.lower.FONT,
      },
      {
        lift: VAPI.Multiviewer.lift.FONT,
        lower: VAPI.Multiviewer.lower.FONT,
      },
      null,
    );
  }
  get digit_bgnd_colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.DIGITALCLOCK
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.DIGITALCLOCK
    >(
      this,
      "digit_bgnd_colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
}
export class DIGITALCLOCKAsNamedTableRow extends DIGITALCLOCK {
  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 PPMSCALESETTINGSDINRange
  implements
    VScript.Referenceable<"Multiviewer::Data::PPMSCALESETTINGS::DINRange">
{
  readonly type_identifier =
    "Multiviewer::Data::PPMSCALESETTINGS::DINRange" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get safe_area(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSDINRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSDINRange
    >(
      this,
      "safe_area" 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 operation_area(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSDINRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSDINRange
    >(
      this,
      "operation_area" 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 min_level(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSDINRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSDINRange
    >(
      this,
      "min_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 max_level(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSDINRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSDINRange
    >(
      this,
      "max_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,
    );
  }
}
export type DISPLAYMODE = "ON" | "OFF" | "NAME";
export interface FONT {
  font_family: VAPI.Multiviewer.FONTFAMILY;
  font_style: VAPI.Multiviewer.FONTSTYLE;
}
export type FONTFAMILY =
  | "OPEN_SANS"
  | "DSEG7_Classic"
  | "DSEG7_Classic_MINI"
  | "DSEG7_Modern"
  | "DSEG7_Modern_MINI"
  | "DSEG14_Classic"
  | "DSEG14_Classic_MINI"
  | "DSEG14_Modern"
  | "DSEG14_Modern_MINI"
  | "NOTO_SANS_TC"
  | "NOTO_SANS_MONO"
  | "FIRA_CODE_MONO";
export type FONTSTYLE = "NORMAL" | "ITALIC" | "BOLD" | "BOLD_ITALIC";
export interface GEOMETRY {
  posx: VAPI.Multiviewer.VirtualXY;
  posy: VAPI.Multiviewer.VirtualXY;
  width: VAPI.Multiviewer.Width;
  height: VAPI.Multiviewer.Height;
  depth: number;
}
export type HEADLAYOUTMODE =
  | "MANUAL"
  | "AUTO"
  | "AUTO_MONITORING"
  | "PATTERN_ID";
export interface HSLCOLOUR {
  hue: number;
  saturation: number;
  lightness: number;
}
export interface HSLCOLOURWITHOPACITY {
  hue: number;
  saturation: number;
  lightness: number;
  opacity: number;
}
export type Height = number;
export type HeightZero = number;
export class IMAGE
  implements VScript.Referenceable<"Multiviewer::Data::IMAGE">
{
  readonly type_identifier = "Multiviewer::Data::IMAGE" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get display_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.IMAGE
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.IMAGE
    >(
      this,
      "display_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 geometry(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number, number],
    [number, number, number, number, number],
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.IMAGE
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number, number],
      [number, number, number, number, number],
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.IMAGE
    >(
      this,
      "geometry" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      null,
    );
  }
}
export class IMAGEAsNamedTableRow extends IMAGE {
  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 type Inputs = number;
export class LABEL
  implements VScript.Referenceable<"Multiviewer::Data::LABEL">
{
  readonly type_identifier = "Multiviewer::Data::LABEL" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.LABEL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.LABEL
    >(
      this,
      "colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
  get font(): VScript.rwKeyword<
    VScript.VSocket,
    [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
    [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
    VAPI.Multiviewer.FONT,
    VAPI.Multiviewer.FONT,
    VAPI.Multiviewer.LABEL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
      [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
      VAPI.Multiviewer.FONT,
      VAPI.Multiviewer.FONT,
      VAPI.Multiviewer.LABEL
    >(
      this,
      "font" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.FONT,
        lower: VAPI.Multiviewer.lower.FONT,
      },
      {
        lift: VAPI.Multiviewer.lift.FONT,
        lower: VAPI.Multiviewer.lower.FONT,
      },
      null,
    );
  }
  get string_default(): VScript.rwKeyword<
    VScript.VSocket,
    string,
    string,
    string,
    string,
    VAPI.Multiviewer.LABEL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      string,
      string,
      string,
      string,
      VAPI.Multiviewer.LABEL
    >(
      this,
      "string_default" 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 LABELDUAL
  implements VScript.Referenceable<"Multiviewer::Data::LABELDUAL">
{
  readonly type_identifier = "Multiviewer::Data::LABELDUAL" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.LABELDUAL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.LABELDUAL
    >(
      this,
      "colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
  get font(): VScript.rwKeyword<
    VScript.VSocket,
    [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
    [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
    VAPI.Multiviewer.FONT,
    VAPI.Multiviewer.FONT,
    VAPI.Multiviewer.LABELDUAL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
      [VAPI.Multiviewer.FONTFAMILY, VAPI.Multiviewer.FONTSTYLE],
      VAPI.Multiviewer.FONT,
      VAPI.Multiviewer.FONT,
      VAPI.Multiviewer.LABELDUAL
    >(
      this,
      "font" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.FONT,
        lower: VAPI.Multiviewer.lower.FONT,
      },
      {
        lift: VAPI.Multiviewer.lift.FONT,
        lower: VAPI.Multiviewer.lower.FONT,
      },
      null,
    );
  }
  get string_default(): VScript.rwKeyword<
    VScript.VSocket,
    string,
    string,
    string,
    string,
    VAPI.Multiviewer.LABELDUAL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      string,
      string,
      string,
      string,
      VAPI.Multiviewer.LABELDUAL
    >(
      this,
      "string_default" 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 string_user(): VScript.rwKeyword<
    VScript.VSocket,
    string,
    string,
    string,
    string,
    VAPI.Multiviewer.LABELDUAL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      string,
      string,
      string,
      string,
      VAPI.Multiviewer.LABELDUAL
    >(
      this,
      "string_user" 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 interface LoadValue {
  value: VAPI.Multiviewer.TUnsignedMax;
  percents: VAPI.Multiviewer.TUnsignedMax;
}
export class MD implements VScript.Referenceable<"Multiviewer::Data::MD"> {
  readonly type_identifier = "Multiviewer::Data::MD" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get enable(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.MD
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.MD
    >(
      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 mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.MDMODE,
    VAPI.Multiviewer.MDMODE,
    VAPI.Multiviewer.MDMODE,
    VAPI.Multiviewer.MDMODE,
    VAPI.Multiviewer.MD
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.MDMODE,
      VAPI.Multiviewer.MDMODE,
      VAPI.Multiviewer.MDMODE,
      VAPI.Multiviewer.MDMODE,
      VAPI.Multiviewer.MD
    >(
      this,
      "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 alignment(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.ALIGNMENT,
    VAPI.Multiviewer.ALIGNMENT,
    VAPI.Multiviewer.ALIGNMENT,
    VAPI.Multiviewer.ALIGNMENT,
    VAPI.Multiviewer.MD
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.ALIGNMENT,
      VAPI.Multiviewer.ALIGNMENT,
      VAPI.Multiviewer.ALIGNMENT,
      VAPI.Multiviewer.ALIGNMENT,
      VAPI.Multiviewer.MD
    >(
      this,
      "alignment" 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 width(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.MD
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.MD
    >(
      this,
      "width" 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 height(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.MD
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.MD
    >(
      this,
      "height" 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 cells() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "Multiviewer::Data::MDCELL",
      VAPI.Multiviewer.MDCELL
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(this.raw, 5, "cells"),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.MDCELL(st),
    );
  }
}
export class MDCELL
  implements VScript.Referenceable<"Multiviewer::Data::MDCELL">
{
  readonly type_identifier = "Multiviewer::Data::MDCELL" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.MDCELLMODE,
    VAPI.Multiviewer.MDCELLMODE,
    VAPI.Multiviewer.MDCELLMODE,
    VAPI.Multiviewer.MDCELLMODE,
    VAPI.Multiviewer.MDCELL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.MDCELLMODE,
      VAPI.Multiviewer.MDCELLMODE,
      VAPI.Multiviewer.MDCELLMODE,
      VAPI.Multiviewer.MDCELLMODE,
      VAPI.Multiviewer.MDCELL
    >(
      this,
      "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 timecode_select(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.ClusterMonitoringObjects.TIMECODE,
    VAPI.ClusterMonitoringObjects.TIMECODE,
    VAPI.ClusterMonitoringObjects.TIMECODE,
    VAPI.ClusterMonitoringObjects.TIMECODE,
    VAPI.Multiviewer.MDCELL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.ClusterMonitoringObjects.TIMECODE,
      VAPI.ClusterMonitoringObjects.TIMECODE,
      VAPI.ClusterMonitoringObjects.TIMECODE,
      VAPI.ClusterMonitoringObjects.TIMECODE,
      VAPI.Multiviewer.MDCELL
    >(
      this,
      "timecode_select" 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 timecode_show_frames(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.MDCELL
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.MDCELL
    >(
      this,
      "timecode_show_frames" 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 bgnd() {
    return VAPI.Multiviewer.lift.BOX(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 3, "bgnd"),
    );
  }
  get label() {
    return VAPI.Multiviewer.lift.LABELDUAL(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 4, "label"),
    );
  }
}
export type MDCELLMODE =
  | "AUDIO_SOURCE_0_NAME"
  | "LABEL"
  | "PIP_NAME"
  | "METADATA_SOURCE_0_NAME"
  | "METADATA_SOURCE_0_TIMECODE"
  | "MONITORING_OBJECT_VIDEO_SOURCE_LABEL"
  | "MONITORING_OBJECT_USER_LABEL_0"
  | "MONITORING_OBJECT_USER_LABEL_1"
  | "MONITORING_OBJECT_USER_LABEL_2"
  | "MONITORING_OBJECT_USER_LABEL_3"
  | "MONITORING_OBJECT_USER_LABEL_4"
  | "MONITORING_OBJECT_USER_LABEL_5"
  | "VIDEO_SOURCE_LABEL"
  | "VIDEO_SOURCE_0_NAME"
  | "VIDEO_STANDARD";
export type MDMODE = "SINGLE" | "DUAL" | "TRIPLE";
export class ManifoldCoreRasterizerStatistics
  implements
    VScript.Referenceable<"Multiviewer::Data::ManifoldCoreRasterizerStatistics">
{
  readonly type_identifier =
    "Multiviewer::Data::ManifoldCoreRasterizerStatistics" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get clocks_per_frame_active(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreRasterizerStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreRasterizerStatistics
    >(this, "clocks_per_frame_active" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get pixel_clocks_per_frame(): VScript.rKeyword<
    VScript.VSocket,
    [number, number],
    VAPI.Multiviewer.LoadValue,
    VAPI.Multiviewer.ManifoldCoreRasterizerStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      [number, number],
      VAPI.Multiviewer.LoadValue,
      VAPI.Multiviewer.ManifoldCoreRasterizerStatistics
    >(this, "pixel_clocks_per_frame" as VScript.SysName, {
      lift: VAPI.Multiviewer.lift.LoadValue,
      lower: VAPI.Multiviewer.lower.LoadValue,
    });
  }
  get pixels_per_frame(): VScript.rKeyword<
    VScript.VSocket,
    [number, number],
    VAPI.Multiviewer.LoadValue,
    VAPI.Multiviewer.ManifoldCoreRasterizerStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      [number, number],
      VAPI.Multiviewer.LoadValue,
      VAPI.Multiviewer.ManifoldCoreRasterizerStatistics
    >(this, "pixels_per_frame" as VScript.SysName, {
      lift: VAPI.Multiviewer.lift.LoadValue,
      lower: VAPI.Multiviewer.lower.LoadValue,
    });
  }
  get clocks_store_wait_for_memory(): VScript.rKeyword<
    VScript.VSocket,
    [number, number],
    VAPI.Multiviewer.LoadValue,
    VAPI.Multiviewer.ManifoldCoreRasterizerStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      [number, number],
      VAPI.Multiviewer.LoadValue,
      VAPI.Multiviewer.ManifoldCoreRasterizerStatistics
    >(this, "clocks_store_wait_for_memory" as VScript.SysName, {
      lift: VAPI.Multiviewer.lift.LoadValue,
      lower: VAPI.Multiviewer.lower.LoadValue,
    });
  }
}
export class ManifoldCoreStatistics
  implements VScript.Referenceable<"Multiviewer::Data::ManifoldCoreStatistics">
{
  readonly type_identifier =
    "Multiviewer::Data::ManifoldCoreStatistics" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get sync_length(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "sync_length" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get sync_length_throttled(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "sync_length_throttled" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get sync_refresh_rate(): VScript.rKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "sync_refresh_rate" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get sync_refresh_rate_throttled(): VScript.rKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "sync_refresh_rate_throttled" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get sync_calc_length(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "sync_calc_length" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_0_primitives_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_0_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_1_primitives_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_1_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_2_primitives_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_2_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_3_primitives_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_3_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_4_primitives_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_4_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_5_primitives_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_5_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_6_primitives_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_6_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_7_primitives_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_7_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get total_primitives_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "total_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_0_total_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_0_total_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_1_total_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_1_total_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_2_total_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_2_total_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_3_total_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_3_total_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_4_total_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_4_total_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_5_total_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_5_total_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_6_total_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_6_total_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_7_total_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_7_total_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_0_active_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_0_active_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_1_active_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_1_active_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_2_active_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_2_active_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_3_active_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_3_active_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_4_active_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_4_active_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_5_active_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_5_active_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_6_active_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_6_active_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_7_active_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_7_active_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_0_load(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_0_load" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_1_load(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_1_load" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_2_load(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_2_load" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_3_load(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_3_load" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_4_load(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_4_load" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_5_load(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_5_load" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_6_load(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_6_load" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get output_7_load(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(this, "output_7_load" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
}
export class ManifoldMemoryStatistics
  implements
    VScript.Referenceable<"Multiviewer::Data::ManifoldMemoryStatistics">
{
  readonly type_identifier =
    "Multiviewer::Data::ManifoldMemoryStatistics" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get mem_band_max_gbits(): VScript.rKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.Multiviewer.ManifoldMemoryStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.Multiviewer.ManifoldMemoryStatistics
    >(this, "mem_band_max_gbits" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get mem_band_write_gbits(): VScript.rKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.Multiviewer.ManifoldMemoryStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.Multiviewer.ManifoldMemoryStatistics
    >(this, "mem_band_write_gbits" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get mem_band_read_gbits(): VScript.rKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.Multiviewer.ManifoldMemoryStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.Multiviewer.ManifoldMemoryStatistics
    >(this, "mem_band_read_gbits" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get video_static_rl_blocks() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "Multiviewer::Data::RLBLOCKSTATISTICS",
      VAPI.Multiviewer.RLBLOCKSTATISTICS
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(
        this.raw,
        3,
        "video_static_rl_blocks",
      ),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.RLBLOCKSTATISTICS(st),
    );
  }
  get video_dynamic_rl_blocks() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "Multiviewer::Data::RLBLOCKSTATISTICS",
      VAPI.Multiviewer.RLBLOCKSTATISTICS
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(
        this.raw,
        4,
        "video_dynamic_rl_blocks",
      ),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.RLBLOCKSTATISTICS(st),
    );
  }
  get graphics_rl_blocks() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "Multiviewer::Data::RLBLOCKSTATISTICS",
      VAPI.Multiviewer.RLBLOCKSTATISTICS
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(
        this.raw,
        5,
        "graphics_rl_blocks",
      ),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.RLBLOCKSTATISTICS(st),
    );
  }
}
export class MultiviewerGlobal
  implements VScript.Referenceable<"Multiviewer::Data::MultiviewerGlobal">
{
  readonly type_identifier = "Multiviewer::Data::MultiviewerGlobal" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get configuration() {
    return VAPI.Multiviewer.lift.MultiviewerGlobalConfiguration(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 0, "configuration"),
    );
  }
  get runtime() {
    return VAPI.Multiviewer.lift.MultiviewerGlobalRuntime(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "runtime"),
    );
  }
}
export class MultiviewerGlobalConfiguration
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerGlobalConfiguration">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerGlobalConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get parameters() {
    return VAPI.Multiviewer.lift.MultiviewerGlobalConfigurationParameters(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 0, "parameters"),
    );
  }
  get head() {
    return new VScript.StronglyTypedNamedTable<
      VScript.VSocket,
      "Multiviewer::Data::MultiviewerHeadGlobalConfiguration",
      VAPI.Multiviewer.MultiviewerHeadGlobalConfigurationAsNamedTableRow
    >(
      VScript.VAPIHelpers.subtree_named_table_child_checked(
        this.raw,
        1,
        "head",
      ),
      (raw: VScript.DataViews.SubtreeNamedTableRow<VScript.VSocket>) =>
        new VAPI.Multiviewer.MultiviewerHeadGlobalConfigurationAsNamedTableRow(
          raw,
        ),
    );
  }
}
export class MultiviewerGlobalConfigurationParameters
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerGlobalConfigurationParameters">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerGlobalConfigurationParameters" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get alarms() {
    return VAPI.Multiviewer.lift.ALARMSSEVERITYLEVELS(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 0, "alarms"),
    );
  }
}
export class MultiviewerGlobalRuntime
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerGlobalRuntime">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerGlobalRuntime" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get head() {
    return new VScript.StronglyTypedTable<
      VScript.VSocket,
      "Multiviewer::Data::MultiviewerHeadGlobalRuntime",
      VAPI.Multiviewer.MultiviewerHeadGlobalRuntime
    >(
      VScript.VAPIHelpers.subtree_table_child_checked(this.raw, 0, "head"),
      (raw: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.MultiviewerHeadGlobalRuntime(raw),
    );
  }
}
export class MultiviewerHeadGlobalConfiguration
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerHeadGlobalConfiguration">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerHeadGlobalConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get parameters() {
    return VAPI.Multiviewer.lift.MultiviewerHeadGlobalParameters(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 0, "parameters"),
    );
  }
  get pip() {
    return new VScript.StronglyTypedNamedTable<
      VScript.VSocket,
      "Multiviewer::Data::PIP",
      VAPI.Multiviewer.PIPAsNamedTableRow
    >(
      VScript.VAPIHelpers.subtree_named_table_child_checked(this.raw, 1, "pip"),
      (raw: VScript.DataViews.SubtreeNamedTableRow<VScript.VSocket>) =>
        new VAPI.Multiviewer.PIPAsNamedTableRow(raw),
    );
  }
  get ppm() {
    return new VScript.StronglyTypedNamedTable<
      VScript.VSocket,
      "Multiviewer::Data::STANDALONEPPM",
      VAPI.Multiviewer.STANDALONEPPMAsNamedTableRow
    >(
      VScript.VAPIHelpers.subtree_named_table_child_checked(this.raw, 2, "ppm"),
      (raw: VScript.DataViews.SubtreeNamedTableRow<VScript.VSocket>) =>
        new VAPI.Multiviewer.STANDALONEPPMAsNamedTableRow(raw),
    );
  }
  get analog_clock() {
    return new VScript.StronglyTypedNamedTable<
      VScript.VSocket,
      "Multiviewer::Data::ANALOGCLOCK",
      VAPI.Multiviewer.ANALOGCLOCKAsNamedTableRow
    >(
      VScript.VAPIHelpers.subtree_named_table_child_checked(
        this.raw,
        3,
        "analog_clock",
      ),
      (raw: VScript.DataViews.SubtreeNamedTableRow<VScript.VSocket>) =>
        new VAPI.Multiviewer.ANALOGCLOCKAsNamedTableRow(raw),
    );
  }
  get digital_clock() {
    return new VScript.StronglyTypedNamedTable<
      VScript.VSocket,
      "Multiviewer::Data::DIGITALCLOCK",
      VAPI.Multiviewer.DIGITALCLOCKAsNamedTableRow
    >(
      VScript.VAPIHelpers.subtree_named_table_child_checked(
        this.raw,
        4,
        "digital_clock",
      ),
      (raw: VScript.DataViews.SubtreeNamedTableRow<VScript.VSocket>) =>
        new VAPI.Multiviewer.DIGITALCLOCKAsNamedTableRow(raw),
    );
  }
  get text_box() {
    return new VScript.StronglyTypedNamedTable<
      VScript.VSocket,
      "Multiviewer::Data::TEXTBOX",
      VAPI.Multiviewer.TEXTBOXAsNamedTableRow
    >(
      VScript.VAPIHelpers.subtree_named_table_child_checked(
        this.raw,
        5,
        "text_box",
      ),
      (raw: VScript.DataViews.SubtreeNamedTableRow<VScript.VSocket>) =>
        new VAPI.Multiviewer.TEXTBOXAsNamedTableRow(raw),
    );
  }
  get image() {
    return new VScript.StronglyTypedNamedTable<
      VScript.VSocket,
      "Multiviewer::Data::IMAGE",
      VAPI.Multiviewer.IMAGEAsNamedTableRow
    >(
      VScript.VAPIHelpers.subtree_named_table_child_checked(
        this.raw,
        6,
        "image",
      ),
      (raw: VScript.DataViews.SubtreeNamedTableRow<VScript.VSocket>) =>
        new VAPI.Multiviewer.IMAGEAsNamedTableRow(raw),
    );
  }
}
export class MultiviewerHeadGlobalConfigurationAsNamedTableRow extends MultiviewerHeadGlobalConfiguration {
  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 MultiviewerHeadGlobalParameters
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerHeadGlobalParameters">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerHeadGlobalParameters" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get display_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.MultiviewerHeadGlobalParameters
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.MultiviewerHeadGlobalParameters
    >(
      this,
      "display_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 video_standard(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.MultiviewerIO.MultiviewerHeadVideoStandard,
    VAPI.MultiviewerIO.MultiviewerHeadVideoStandard,
    VAPI.MultiviewerIO.MultiviewerHeadVideoStandard,
    VAPI.MultiviewerIO.MultiviewerHeadVideoStandard,
    VAPI.Multiviewer.MultiviewerHeadGlobalParameters
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.MultiviewerIO.MultiviewerHeadVideoStandard,
      VAPI.MultiviewerIO.MultiviewerHeadVideoStandard,
      VAPI.MultiviewerIO.MultiviewerHeadVideoStandard,
      VAPI.MultiviewerIO.MultiviewerHeadVideoStandard,
      VAPI.Multiviewer.MultiviewerHeadGlobalParameters
    >(
      this,
      "video_standard" 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 double_buffer_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.MultiviewerIO.DOUBLEBUFFERMODE,
    VAPI.MultiviewerIO.DOUBLEBUFFERMODE,
    VAPI.MultiviewerIO.DOUBLEBUFFERMODE,
    VAPI.MultiviewerIO.DOUBLEBUFFERMODE,
    VAPI.Multiviewer.MultiviewerHeadGlobalParameters
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.MultiviewerIO.DOUBLEBUFFERMODE,
      VAPI.MultiviewerIO.DOUBLEBUFFERMODE,
      VAPI.MultiviewerIO.DOUBLEBUFFERMODE,
      VAPI.MultiviewerIO.DOUBLEBUFFERMODE,
      VAPI.Multiviewer.MultiviewerHeadGlobalParameters
    >(
      this,
      "double_buffer_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 rotation(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.MultiviewerIO.OUTPUTROTATIONMODE,
    VAPI.MultiviewerIO.OUTPUTROTATIONMODE,
    VAPI.MultiviewerIO.OUTPUTROTATIONMODE,
    VAPI.MultiviewerIO.OUTPUTROTATIONMODE,
    VAPI.Multiviewer.MultiviewerHeadGlobalParameters
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.MultiviewerIO.OUTPUTROTATIONMODE,
      VAPI.MultiviewerIO.OUTPUTROTATIONMODE,
      VAPI.MultiviewerIO.OUTPUTROTATIONMODE,
      VAPI.MultiviewerIO.OUTPUTROTATIONMODE,
      VAPI.Multiviewer.MultiviewerHeadGlobalParameters
    >(
      this,
      "rotation" 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 bgnd_colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number],
    [number, number, number],
    VAPI.Multiviewer.HSLCOLOUR,
    VAPI.Multiviewer.HSLCOLOUR,
    VAPI.Multiviewer.MultiviewerHeadGlobalParameters
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number],
      [number, number, number],
      VAPI.Multiviewer.HSLCOLOUR,
      VAPI.Multiviewer.HSLCOLOUR,
      VAPI.Multiviewer.MultiviewerHeadGlobalParameters
    >(
      this,
      "bgnd_colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOUR,
        lower: VAPI.Multiviewer.lower.HSLCOLOUR,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOUR,
        lower: VAPI.Multiviewer.lower.HSLCOLOUR,
      },
      null,
    );
  }
  get layout() {
    return VAPI.Multiviewer.lift.MultiviewerHeadLayout(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 5, "layout"),
    );
  }
  get ppm_scale() {
    return VAPI.Multiviewer.lift.PPMSCALESETTINGS(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 6, "ppm_scale"),
    );
  }
  get tally_rules() {
    return VAPI.Multiviewer.lift.TALLYRULES(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 7, "tally_rules"),
    );
  }
  get streaming() {
    return VAPI.Multiviewer.lift.MultiviewerHeadStreamingConfiguration(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 8, "streaming"),
    );
  }
}
export class MultiviewerHeadGlobalRuntime
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerHeadGlobalRuntime">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerHeadGlobalRuntime" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get pip() {
    return new VScript.StronglyTypedTable<
      VScript.VSocket,
      "Multiviewer::Data::MultiviewerPIPGlobalRuntime",
      VAPI.Multiviewer.MultiviewerPIPGlobalRuntime
    >(
      VScript.VAPIHelpers.subtree_table_child_checked(this.raw, 0, "pip"),
      (raw: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.MultiviewerPIPGlobalRuntime(raw),
    );
  }
}
export class MultiviewerHeadLayout
  implements VScript.Referenceable<"Multiviewer::Data::MultiviewerHeadLayout">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerHeadLayout" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get layout_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.HEADLAYOUTMODE,
    VAPI.Multiviewer.HEADLAYOUTMODE,
    VAPI.Multiviewer.HEADLAYOUTMODE,
    VAPI.Multiviewer.HEADLAYOUTMODE,
    VAPI.Multiviewer.MultiviewerHeadLayout
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.HEADLAYOUTMODE,
      VAPI.Multiviewer.HEADLAYOUTMODE,
      VAPI.Multiviewer.HEADLAYOUTMODE,
      VAPI.Multiviewer.HEADLAYOUTMODE,
      VAPI.Multiviewer.MultiviewerHeadLayout
    >(
      this,
      "layout_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 pattern_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.MultiviewerHeadLayout
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.MultiviewerHeadLayout
    >(
      this,
      "pattern_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 pattern_gap_x(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.MultiviewerHeadLayout
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.MultiviewerHeadLayout
    >(
      this,
      "pattern_gap_x" 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 pattern_gap_y(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.MultiviewerHeadLayout
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.MultiviewerHeadLayout
    >(
      this,
      "pattern_gap_y" 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 auto_monitoring() {
    return VAPI.Multiviewer.lift.AUTOMONITORINGSETTINGS(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 4, "auto_monitoring"),
    );
  }
}
export class MultiviewerHeadLocalRuntime
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerHeadLocalRuntime">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerHeadLocalRuntime" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get pip() {
    return new VScript.StronglyTypedTable<
      VScript.VSocket,
      "Multiviewer::Data::MultiviewerPIPLocalRuntime",
      VAPI.Multiviewer.MultiviewerPIPLocalRuntime
    >(
      VScript.VAPIHelpers.subtree_table_child_checked(this.raw, 0, "pip"),
      (raw: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.MultiviewerPIPLocalRuntime(raw),
    );
  }
}
export class MultiviewerHeadStreamingConfiguration
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerHeadStreamingConfiguration">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerHeadStreamingConfiguration" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get enable(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.MultiviewerHeadStreamingConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.MultiviewerHeadStreamingConfiguration
    >(
      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 transport_format(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Video.TransportFormat,
    VAPI.Video.TransportFormat,
    VAPI.Video.TransportFormat,
    VAPI.Video.TransportFormat,
    VAPI.Multiviewer.MultiviewerHeadStreamingConfiguration
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Video.TransportFormat,
      VAPI.Video.TransportFormat,
      VAPI.Video.TransportFormat,
      VAPI.Video.TransportFormat,
      VAPI.Multiviewer.MultiviewerHeadStreamingConfiguration
    >(
      this,
      "transport_format" 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 MultiviewerLocal
  implements VScript.Referenceable<"Multiviewer::Data::MultiviewerLocal">
{
  readonly type_identifier = "Multiviewer::Data::MultiviewerLocal" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get runtime() {
    return VAPI.Multiviewer.lift.MultiviewerLocalRuntime(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 0, "runtime"),
    );
  }
}
export class MultiviewerLocalRuntime
  implements VScript.Referenceable<"Multiviewer::Data::MultiviewerLocalRuntime">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerLocalRuntime" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get head() {
    return new VScript.StronglyTypedTable<
      VScript.VSocket,
      "Multiviewer::Data::MultiviewerHeadLocalRuntime",
      VAPI.Multiviewer.MultiviewerHeadLocalRuntime
    >(
      VScript.VAPIHelpers.subtree_table_child_checked(this.raw, 0, "head"),
      (raw: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.MultiviewerHeadLocalRuntime(raw),
    );
  }
  get statistics() {
    return VAPI.Multiviewer.lift.MultiviewerStatistics(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "statistics"),
    );
  }
}
export class MultiviewerPIPGlobalRuntime
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerPIPGlobalRuntime">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerPIPGlobalRuntime" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get use_full_size(): VScript.rKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    VAPI.Multiviewer.MultiviewerPIPGlobalRuntime
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      VAPI.Multiviewer.MultiviewerPIPGlobalRuntime
    >(this, "use_full_size" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get resolution_level(): VScript.rKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.RESOLUTIONLEVEL,
    VAPI.Multiviewer.RESOLUTIONLEVEL,
    VAPI.Multiviewer.MultiviewerPIPGlobalRuntime
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.RESOLUTIONLEVEL,
      VAPI.Multiviewer.RESOLUTIONLEVEL,
      VAPI.Multiviewer.MultiviewerPIPGlobalRuntime
    >(this, "resolution_level" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
}
export class MultiviewerPIPLocalRuntime
  implements
    VScript.Referenceable<"Multiviewer::Data::MultiviewerPIPLocalRuntime">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerPIPLocalRuntime" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get routing(): VScript.rKeyword<
    VScript.VSocket,
    [number, number, number, number],
    VAPI.Multiviewer.PIPROUTING,
    VAPI.Multiviewer.MultiviewerPIPLocalRuntime
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      [number, number, number, number],
      VAPI.Multiviewer.PIPROUTING,
      VAPI.Multiviewer.MultiviewerPIPLocalRuntime
    >(this, "routing" as VScript.SysName, {
      lift: VAPI.Multiviewer.lift.PIPROUTING,
      lower: VAPI.Multiviewer.lower.PIPROUTING,
    });
  }
}
export class MultiviewerStatistics
  implements VScript.Referenceable<"Multiviewer::Data::MultiviewerStatistics">
{
  readonly type_identifier =
    "Multiviewer::Data::MultiviewerStatistics" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get cores() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "Multiviewer::Data::ManifoldCoreStatistics",
      VAPI.Multiviewer.ManifoldCoreStatistics
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(this.raw, 0, "cores"),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.ManifoldCoreStatistics(st),
    );
  }
  get memory() {
    return VAPI.Multiviewer.lift.ManifoldMemoryStatistics(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "memory"),
    );
  }
}
export class PPMSCALESETTINGSNordicRange
  implements
    VScript.Referenceable<"Multiviewer::Data::PPMSCALESETTINGS::NordicRange">
{
  readonly type_identifier =
    "Multiviewer::Data::PPMSCALESETTINGS::NordicRange" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get safe_area(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSNordicRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSNordicRange
    >(
      this,
      "safe_area" 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 operation_area(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSNordicRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSNordicRange
    >(
      this,
      "operation_area" 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 min_level(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSNordicRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSNordicRange
    >(
      this,
      "min_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 max_level(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSNordicRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSNordicRange
    >(
      this,
      "max_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,
    );
  }
}
export type OBJECTID = number;
export type PEAKHOLDDECAY = "Off" | "Slow" | "Medium" | "Fast";
export type PEAKHOLDTIME =
  | "Off"
  | "OneSecond"
  | "TwoSeconds"
  | "ThreeSeconds"
  | "FourSeconds";
export class PIP implements VScript.Referenceable<"Multiviewer::Data::PIP"> {
  readonly type_identifier = "Multiviewer::Data::PIP" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get monitoring_object_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.ClusterMonitoringObjects.MonitoringObjectID,
    VAPI.ClusterMonitoringObjects.MonitoringObjectID,
    VAPI.Multiviewer.PIP
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.ClusterMonitoringObjects.MonitoringObjectID,
      VAPI.ClusterMonitoringObjects.MonitoringObjectID,
      VAPI.Multiviewer.PIP
    >(
      this,
      "monitoring_object_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 display_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.PIP
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.PIP
    >(
      this,
      "display_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 geometry(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number, number],
    [number, number, number, number, number],
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.PIP
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number, number],
      [number, number, number, number, number],
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.PIP
    >(
      this,
      "geometry" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      null,
    );
  }
  get keep_ar(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.PIP
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.PIP
    >(
      this,
      "keep_ar" 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 mipmap_bias(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PIP
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PIP
    >(
      this,
      "mipmap_bias" 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 bgnd() {
    return VAPI.Multiviewer.lift.BOX(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 5, "bgnd"),
    );
  }
  get video_crop(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.CROP,
    VAPI.Multiviewer.CROP,
    VAPI.Multiviewer.PIP
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.CROP,
      VAPI.Multiviewer.CROP,
      VAPI.Multiviewer.PIP
    >(
      this,
      "video_crop" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.CROP,
        lower: VAPI.Multiviewer.lower.CROP,
      },
      {
        lift: VAPI.Multiviewer.lift.CROP,
        lower: VAPI.Multiviewer.lower.CROP,
      },
      null,
    );
  }
  get video_border() {
    return VAPI.Multiviewer.lift.BORDER(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 7, "video_border"),
    );
  }
  get ppms() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "Multiviewer::Data::PIPPPM",
      VAPI.Multiviewer.PIPPPM
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(this.raw, 8, "ppms"),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.Multiviewer.lift.PIPPPM(st),
    );
  }
  get omd() {
    return VAPI.Multiviewer.lift.MD(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 9, "omd"),
    );
  }
  get umd() {
    return VAPI.Multiviewer.lift.MD(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 10, "umd"),
    );
  }
  get tally_lamps() {
    return VAPI.Multiviewer.lift.TALLYLAMPS(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 11, "tally_lamps"),
    );
  }
  get tally_settings() {
    return VAPI.Multiviewer.lift.PIPTALLYSETTINGS(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 12, "tally_settings"),
    );
  }
  get closed_caption() {
    return VAPI.Multiviewer.lift.CLOSEDCAPTION(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 13, "closed_caption"),
    );
  }
}
export class PIPAsNamedTableRow extends PIP {
  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 PIPPPM
  implements VScript.Referenceable<"Multiviewer::Data::PIPPPM">
{
  readonly type_identifier = "Multiviewer::Data::PIPPPM" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get enable(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.PIPPPM
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.PIPPPM
    >(
      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 alignment(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.PIPPPMALIGNMENT,
    VAPI.Multiviewer.PIPPPMALIGNMENT,
    VAPI.Multiviewer.PIPPPMALIGNMENT,
    VAPI.Multiviewer.PIPPPMALIGNMENT,
    VAPI.Multiviewer.PIPPPM
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.PIPPPMALIGNMENT,
      VAPI.Multiviewer.PIPPPMALIGNMENT,
      VAPI.Multiviewer.PIPPPMALIGNMENT,
      VAPI.Multiviewer.PIPPPMALIGNMENT,
      VAPI.Multiviewer.PIPPPM
    >(
      this,
      "alignment" 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 bgnd() {
    return VAPI.Multiviewer.lift.BOX(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 2, "bgnd"),
    );
  }
  get settings(): VScript.rwKeyword<
    VScript.VSocket,
    [
      VAPI.Multiviewer.PPMDisplayMode,
      VAPI.Multiviewer.PPMScalePosition,
      VAPI.Multiviewer.PPMScaleType,
      VAPI.Multiviewer.PEAKHOLDTIME,
      VAPI.Multiviewer.PEAKHOLDDECAY,
      VAPI.Multiviewer.PPMDECAY,
      number,
      number,
      number,
      number,
      number,
      number,
    ],
    [
      VAPI.Multiviewer.PPMDisplayMode,
      VAPI.Multiviewer.PPMScalePosition,
      VAPI.Multiviewer.PPMScaleType,
      VAPI.Multiviewer.PEAKHOLDTIME,
      VAPI.Multiviewer.PEAKHOLDDECAY,
      VAPI.Multiviewer.PPMDECAY,
      number,
      number,
      number,
      number,
      number,
      number,
    ],
    VAPI.Multiviewer.PPMSETTINGS,
    VAPI.Multiviewer.PPMSETTINGS,
    VAPI.Multiviewer.PIPPPM
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [
        VAPI.Multiviewer.PPMDisplayMode,
        VAPI.Multiviewer.PPMScalePosition,
        VAPI.Multiviewer.PPMScaleType,
        VAPI.Multiviewer.PEAKHOLDTIME,
        VAPI.Multiviewer.PEAKHOLDDECAY,
        VAPI.Multiviewer.PPMDECAY,
        number,
        number,
        number,
        number,
        number,
        number,
      ],
      [
        VAPI.Multiviewer.PPMDisplayMode,
        VAPI.Multiviewer.PPMScalePosition,
        VAPI.Multiviewer.PPMScaleType,
        VAPI.Multiviewer.PEAKHOLDTIME,
        VAPI.Multiviewer.PEAKHOLDDECAY,
        VAPI.Multiviewer.PPMDECAY,
        number,
        number,
        number,
        number,
        number,
        number,
      ],
      VAPI.Multiviewer.PPMSETTINGS,
      VAPI.Multiviewer.PPMSETTINGS,
      VAPI.Multiviewer.PIPPPM
    >(
      this,
      "settings" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.PPMSETTINGS,
        lower: VAPI.Multiviewer.lower.PPMSETTINGS,
      },
      {
        lift: VAPI.Multiviewer.lift.PPMSETTINGS,
        lower: VAPI.Multiviewer.lower.PPMSETTINGS,
      },
      null,
    );
  }
}
export type PIPPPMALIGNMENT =
  | "LEFT_INSIDE"
  | "LEFT_OUTSIDE"
  | "RIGHT_INSIDE"
  | "RIGHT_OUTSIDE";
export interface PIPROUTING {
  video_texture_width: number;
  video_texture_height: number;
  video_texture_input_id: number;
  video_texture_input_rl_id: number;
}
export type PIPTALLYMODE =
  | "PIP_TALLY_MASK"
  | "VIDEO_SOURCE_TALLY_MASK"
  | "MONITORING_OBJECT_TALLY_MASK";
export interface PIPTALLYRULESSETTINGS {
  bgnd_tally_rules_mask: number;
  bgnd_border_tally_rules_mask: number;
  video_border_tally_rules_mask: number;
  umd_0_tally_rules_mask: number;
  umd_0_border_tally_rules_mask: number;
  umd_0_label_tally_rules_mask: number;
  umd_1_tally_rules_mask: number;
  umd_1_border_tally_rules_mask: number;
  umd_1_label_tally_rules_mask: number;
  umd_2_tally_rules_mask: number;
  umd_2_border_tally_rules_mask: number;
  umd_2_label_tally_rules_mask: number;
  omd_0_tally_rules_mask: number;
  omd_0_border_tally_rules_mask: number;
  omd_0_label_tally_rules_mask: number;
  omd_1_tally_rules_mask: number;
  omd_1_border_tally_rules_mask: number;
  omd_1_label_tally_rules_mask: number;
  omd_2_tally_rules_mask: number;
  omd_2_border_tally_rules_mask: number;
  omd_2_label_tally_rules_mask: number;
  left_lamp_tally_rules_mask: number;
  left_lamp_border_tally_rules_mask: number;
  right_lamp_tally_rules_mask: number;
  right_lamp_border_tally_rules_mask: number;
}
export class PIPTALLYSETTINGS
  implements VScript.Referenceable<"Multiviewer::Data::PIPTALLYSETTINGS">
{
  readonly type_identifier = "Multiviewer::Data::PIPTALLYSETTINGS" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.PIPTALLYMODE,
    VAPI.Multiviewer.PIPTALLYMODE,
    VAPI.Multiviewer.PIPTALLYMODE,
    VAPI.Multiviewer.PIPTALLYMODE,
    VAPI.Multiviewer.PIPTALLYSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.PIPTALLYMODE,
      VAPI.Multiviewer.PIPTALLYMODE,
      VAPI.Multiviewer.PIPTALLYMODE,
      VAPI.Multiviewer.PIPTALLYMODE,
      VAPI.Multiviewer.PIPTALLYSETTINGS
    >(
      this,
      "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 tally_mask(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.PIPTALLYSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.PIPTALLYSETTINGS
    >(
      this,
      "tally_mask" 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 rules(): VScript.rwKeyword<
    VScript.VSocket,
    [
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
    ],
    [
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
      number,
    ],
    VAPI.Multiviewer.PIPTALLYRULESSETTINGS,
    VAPI.Multiviewer.PIPTALLYRULESSETTINGS,
    VAPI.Multiviewer.PIPTALLYSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
      ],
      [
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
      ],
      VAPI.Multiviewer.PIPTALLYRULESSETTINGS,
      VAPI.Multiviewer.PIPTALLYRULESSETTINGS,
      VAPI.Multiviewer.PIPTALLYSETTINGS
    >(
      this,
      "rules" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.PIPTALLYRULESSETTINGS,
        lower: VAPI.Multiviewer.lower.PIPTALLYRULESSETTINGS,
      },
      {
        lift: VAPI.Multiviewer.lift.PIPTALLYRULESSETTINGS,
        lower: VAPI.Multiviewer.lower.PIPTALLYRULESSETTINGS,
      },
      null,
    );
  }
}
export class PPMSCALESETTINGS
  implements VScript.Referenceable<"Multiviewer::Data::PPMSCALESETTINGS">
{
  readonly type_identifier = "Multiviewer::Data::PPMSCALESETTINGS" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get scale_strech(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGS
    >(
      this,
      "scale_strech" 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 d_b_f_s_range() {
    return VAPI.Multiviewer.lift.PPMSCALESETTINGSDBFSRange(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "d_b_f_s_range"),
    );
  }
  get d_i_n_range() {
    return VAPI.Multiviewer.lift.PPMSCALESETTINGSDINRange(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 2, "d_i_n_range"),
    );
  }
  get nordic_range() {
    return VAPI.Multiviewer.lift.PPMSCALESETTINGSNordicRange(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 3, "nordic_range"),
    );
  }
  get b_b_c_range() {
    return VAPI.Multiviewer.lift.PPMSCALESETTINGSBBCRange(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 4, "b_b_c_range"),
    );
  }
}
export type PPMChannels = number;
export type PPMDECAY =
  | "decay_Fast"
  | "decay_24db_2_8s"
  | "decay_20db_1_7s"
  | "decay_20db_1_5s";
export type PPMDisplayMode =
  | "ColourBars"
  | "ColourBarsGradient"
  | "ColourLEDs"
  | "ColourLEDsGradient";
export interface PPMSETTINGS {
  display_mode: VAPI.Multiviewer.PPMDisplayMode;
  scale_position: VAPI.Multiviewer.PPMScalePosition;
  scale_type: VAPI.Multiviewer.PPMScaleType;
  peak_hold: VAPI.Multiviewer.PEAKHOLDTIME;
  peak_hold_decay: VAPI.Multiviewer.PEAKHOLDDECAY;
  ppm_decay: VAPI.Multiviewer.PPMDECAY;
  width: number;
  opacity: number;
  scale_size: number;
  channel_spacing_size: number;
  leds_size: number;
  leds_spacing_size: number;
}
export type PPMScalePosition = "Left" | "Right" | "LeftAndRight" | "None";
export type PPMScaleType = "dBFS" | "DIN" | "Nordic" | "BBC";
export type RESOLUTIONLEVEL =
  | "UNDEFINED"
  | "FULL_SIZE"
  | "ONE_4"
  | "ONE_16"
  | "ONE_64"
  | "ONE_256";
export class RLBLOCKSTATISTICS
  implements VScript.Referenceable<"Multiviewer::Data::RLBLOCKSTATISTICS">
{
  readonly type_identifier = "Multiviewer::Data::RLBLOCKSTATISTICS" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get total_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.RLBLOCKSTATISTICS
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.RLBLOCKSTATISTICS
    >(this, "total_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get free_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.RLBLOCKSTATISTICS
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.RLBLOCKSTATISTICS
    >(this, "free_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get used_num(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.RLBLOCKSTATISTICS
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.RLBLOCKSTATISTICS
    >(this, "used_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get max_width(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.RLBLOCKSTATISTICS
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.RLBLOCKSTATISTICS
    >(this, "max_width" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get max_height(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.Multiviewer.TUnsignedMax,
    VAPI.Multiviewer.RLBLOCKSTATISTICS
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.Multiviewer.TUnsignedMax,
      VAPI.Multiviewer.RLBLOCKSTATISTICS
    >(this, "max_height" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
}
export class STANDALONEPPM
  implements VScript.Referenceable<"Multiviewer::Data::STANDALONEPPM">
{
  readonly type_identifier = "Multiviewer::Data::STANDALONEPPM" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get monitoring_object_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.ClusterMonitoringObjects.MonitoringObjectID,
    VAPI.ClusterMonitoringObjects.MonitoringObjectID,
    VAPI.Multiviewer.STANDALONEPPM
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.ClusterMonitoringObjects.MonitoringObjectID,
      VAPI.ClusterMonitoringObjects.MonitoringObjectID,
      VAPI.Multiviewer.STANDALONEPPM
    >(
      this,
      "monitoring_object_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 display_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.STANDALONEPPM
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.STANDALONEPPM
    >(
      this,
      "display_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 geometry(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number, number],
    [number, number, number, number, number],
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.STANDALONEPPM
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number, number],
      [number, number, number, number, number],
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.STANDALONEPPM
    >(
      this,
      "geometry" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      null,
    );
  }
  get bgnd() {
    return VAPI.Multiviewer.lift.BOX(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 3, "bgnd"),
    );
  }
  get settings(): VScript.rwKeyword<
    VScript.VSocket,
    [
      VAPI.Multiviewer.PPMDisplayMode,
      VAPI.Multiviewer.PPMScalePosition,
      VAPI.Multiviewer.PPMScaleType,
      VAPI.Multiviewer.PEAKHOLDTIME,
      VAPI.Multiviewer.PEAKHOLDDECAY,
      VAPI.Multiviewer.PPMDECAY,
      number,
      number,
      number,
      number,
      number,
      number,
    ],
    [
      VAPI.Multiviewer.PPMDisplayMode,
      VAPI.Multiviewer.PPMScalePosition,
      VAPI.Multiviewer.PPMScaleType,
      VAPI.Multiviewer.PEAKHOLDTIME,
      VAPI.Multiviewer.PEAKHOLDDECAY,
      VAPI.Multiviewer.PPMDECAY,
      number,
      number,
      number,
      number,
      number,
      number,
    ],
    VAPI.Multiviewer.PPMSETTINGS,
    VAPI.Multiviewer.PPMSETTINGS,
    VAPI.Multiviewer.STANDALONEPPM
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [
        VAPI.Multiviewer.PPMDisplayMode,
        VAPI.Multiviewer.PPMScalePosition,
        VAPI.Multiviewer.PPMScaleType,
        VAPI.Multiviewer.PEAKHOLDTIME,
        VAPI.Multiviewer.PEAKHOLDDECAY,
        VAPI.Multiviewer.PPMDECAY,
        number,
        number,
        number,
        number,
        number,
        number,
      ],
      [
        VAPI.Multiviewer.PPMDisplayMode,
        VAPI.Multiviewer.PPMScalePosition,
        VAPI.Multiviewer.PPMScaleType,
        VAPI.Multiviewer.PEAKHOLDTIME,
        VAPI.Multiviewer.PEAKHOLDDECAY,
        VAPI.Multiviewer.PPMDECAY,
        number,
        number,
        number,
        number,
        number,
        number,
      ],
      VAPI.Multiviewer.PPMSETTINGS,
      VAPI.Multiviewer.PPMSETTINGS,
      VAPI.Multiviewer.STANDALONEPPM
    >(
      this,
      "settings" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.PPMSETTINGS,
        lower: VAPI.Multiviewer.lower.PPMSETTINGS,
      },
      {
        lift: VAPI.Multiviewer.lift.PPMSETTINGS,
        lower: VAPI.Multiviewer.lower.PPMSETTINGS,
      },
      null,
    );
  }
}
export class STANDALONEPPMAsNamedTableRow extends STANDALONEPPM {
  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 STOPWATCHCMD
  implements VScript.Referenceable<"Multiviewer::Data::STOPWATCHCMD">
{
  readonly type_identifier = "Multiviewer::Data::STOPWATCHCMD" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}

  /**
    Start
  */
  get start(): VScript.wKeyword<
    VScript.VSocket,
    VAPI.Primitives.Button,
    VAPI.Primitives.Button,
    VAPI.Multiviewer.STOPWATCHCMD
  > {
    return new VScript.wKeyword<
      VScript.VSocket,
      VAPI.Primitives.Button,
      VAPI.Primitives.Button,
      VAPI.Multiviewer.STOPWATCHCMD
    >(
      this,
      "start" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }

  /**
    Stop
  */
  get stop(): VScript.wKeyword<
    VScript.VSocket,
    VAPI.Primitives.Button,
    VAPI.Primitives.Button,
    VAPI.Multiviewer.STOPWATCHCMD
  > {
    return new VScript.wKeyword<
      VScript.VSocket,
      VAPI.Primitives.Button,
      VAPI.Primitives.Button,
      VAPI.Multiviewer.STOPWATCHCMD
    >(
      this,
      "stop" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }

  /**
    Pause
  */
  get pause(): VScript.wKeyword<
    VScript.VSocket,
    VAPI.Primitives.Button,
    VAPI.Primitives.Button,
    VAPI.Multiviewer.STOPWATCHCMD
  > {
    return new VScript.wKeyword<
      VScript.VSocket,
      VAPI.Primitives.Button,
      VAPI.Primitives.Button,
      VAPI.Multiviewer.STOPWATCHCMD
    >(
      this,
      "pause" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }

  /**
    Reset
  */
  get reset(): VScript.wKeyword<
    VScript.VSocket,
    VAPI.Primitives.Button,
    VAPI.Primitives.Button,
    VAPI.Multiviewer.STOPWATCHCMD
  > {
    return new VScript.wKeyword<
      VScript.VSocket,
      VAPI.Primitives.Button,
      VAPI.Primitives.Button,
      VAPI.Multiviewer.STOPWATCHCMD
    >(
      this,
      "reset" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }

  /**
    Restart
  */
  get restart(): VScript.wKeyword<
    VScript.VSocket,
    VAPI.Primitives.Button,
    VAPI.Primitives.Button,
    VAPI.Multiviewer.STOPWATCHCMD
  > {
    return new VScript.wKeyword<
      VScript.VSocket,
      VAPI.Primitives.Button,
      VAPI.Primitives.Button,
      VAPI.Multiviewer.STOPWATCHCMD
    >(
      this,
      "restart" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }

  /**
    Lap
  */
  get lap(): VScript.wKeyword<
    VScript.VSocket,
    VAPI.Primitives.Button,
    VAPI.Primitives.Button,
    VAPI.Multiviewer.STOPWATCHCMD
  > {
    return new VScript.wKeyword<
      VScript.VSocket,
      VAPI.Primitives.Button,
      VAPI.Primitives.Button,
      VAPI.Multiviewer.STOPWATCHCMD
    >(
      this,
      "lap" as VScript.SysName,
      {
        lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
        lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
      },
      null,
    );
  }
}
export type STOPWATCHCMDTYPE =
  | "eNone"
  | "eStart"
  | "eStop"
  | "ePause"
  | "eReset"
  | "eRestart"
  | "eLap";
export type STOPWATCHMODE =
  | "OFF"
  | "COUNT_UP_DURATION"
  | "COUNT_DOWN_DURATION"
  | "COUNT_UP_TARGET"
  | "COUNT_DOWN_TARGET"
  | "COUNT_UP_START";
export class STOPWATCHSETTINGS
  implements VScript.Referenceable<"Multiviewer::Data::STOPWATCHSETTINGS">
{
  readonly type_identifier = "Multiviewer::Data::STOPWATCHSETTINGS" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.STOPWATCHMODE,
    VAPI.Multiviewer.STOPWATCHMODE,
    VAPI.Multiviewer.STOPWATCHMODE,
    VAPI.Multiviewer.STOPWATCHMODE,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.STOPWATCHMODE,
      VAPI.Multiviewer.STOPWATCHMODE,
      VAPI.Multiviewer.STOPWATCHMODE,
      VAPI.Multiviewer.STOPWATCHMODE,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(
      this,
      "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 count_after_finished(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(
      this,
      "count_after_finished" 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 colour_after_finished(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(
      this,
      "colour_after_finished" 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 blinking_after_finished(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(
      this,
      "blinking_after_finished" 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 cmd() {
    return VAPI.Multiviewer.lift.STOPWATCHCMD(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 4, "cmd"),
    );
  }
  get target_or_duration(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number],
    [number, number, number],
    VAPI.Multiviewer.CLOCKTIME,
    VAPI.Multiviewer.CLOCKTIME,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number],
      [number, number, number],
      VAPI.Multiviewer.CLOCKTIME,
      VAPI.Multiviewer.CLOCKTIME,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(
      this,
      "target_or_duration" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.CLOCKTIME,
        lower: VAPI.Multiviewer.lower.CLOCKTIME,
      },
      {
        lift: VAPI.Multiviewer.lift.CLOCKTIME,
        lower: VAPI.Multiviewer.lower.CLOCKTIME,
      },
      null,
    );
  }
  get finish_colour_time(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number],
    [number, number, number],
    VAPI.Multiviewer.CLOCKTIME,
    VAPI.Multiviewer.CLOCKTIME,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number],
      [number, number, number],
      VAPI.Multiviewer.CLOCKTIME,
      VAPI.Multiviewer.CLOCKTIME,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(
      this,
      "finish_colour_time" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.CLOCKTIME,
        lower: VAPI.Multiviewer.lower.CLOCKTIME,
      },
      {
        lift: VAPI.Multiviewer.lift.CLOCKTIME,
        lower: VAPI.Multiviewer.lower.CLOCKTIME,
      },
      null,
    );
  }
  get finish_blinking_time(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number],
    [number, number, number],
    VAPI.Multiviewer.CLOCKTIME,
    VAPI.Multiviewer.CLOCKTIME,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number],
      [number, number, number],
      VAPI.Multiviewer.CLOCKTIME,
      VAPI.Multiviewer.CLOCKTIME,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(
      this,
      "finish_blinking_time" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.CLOCKTIME,
        lower: VAPI.Multiviewer.lower.CLOCKTIME,
      },
      {
        lift: VAPI.Multiviewer.lift.CLOCKTIME,
        lower: VAPI.Multiviewer.lower.CLOCKTIME,
      },
      null,
    );
  }
  get finish_colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(
      this,
      "finish_colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
  get state(): VScript.rKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.STOPWATCHSTATE,
    VAPI.Multiviewer.STOPWATCHSTATE,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.STOPWATCHSTATE,
      VAPI.Multiviewer.STOPWATCHSTATE,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(this, "state" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get is_finish_colour(): VScript.rKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(this, "is_finish_colour" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get is_finish_blinking(): VScript.rKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(this, "is_finish_blinking" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get is_finished(): VScript.rKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    VAPI.Multiviewer.STOPWATCHSETTINGS
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      VAPI.Multiviewer.STOPWATCHSETTINGS
    >(this, "is_finished" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
}
export type STOPWATCHSTATE = "STOP" | "PAUSE" | "RUN" | "LAP";
export class TALLYLAMPS
  implements VScript.Referenceable<"Multiviewer::Data::TALLYLAMPS">
{
  readonly type_identifier = "Multiviewer::Data::TALLYLAMPS" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get enable(): VScript.rwKeyword<
    VScript.VSocket,
    boolean,
    boolean,
    boolean,
    boolean,
    VAPI.Multiviewer.TALLYLAMPS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      boolean,
      boolean,
      boolean,
      boolean,
      VAPI.Multiviewer.TALLYLAMPS
    >(
      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 width(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.TALLYLAMPS
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.TALLYLAMPS
    >(
      this,
      "width" 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 left_lamp() {
    return VAPI.Multiviewer.lift.BOX(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 2, "left_lamp"),
    );
  }
  get right_lamp() {
    return VAPI.Multiviewer.lift.BOX(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 3, "right_lamp"),
    );
  }
}
export class TALLYRULE
  implements VScript.Referenceable<"Multiviewer::Data::TALLYRULE">
{
  readonly type_identifier = "Multiviewer::Data::TALLYRULE" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get bit_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.TALLYRULE
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.TALLYRULE
    >(
      this,
      "bit_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 priority_id(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.TALLYRULE
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.TALLYRULE
    >(
      this,
      "priority_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 colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.TALLYRULE
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.TALLYRULE
    >(
      this,
      "colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
}
export class TALLYRULES
  implements VScript.Referenceable<"Multiviewer::Data::TALLYRULES">
{
  readonly type_identifier = "Multiviewer::Data::TALLYRULES" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get rule_0() {
    return VAPI.Multiviewer.lift.TALLYRULE(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 0, "rule_0"),
    );
  }
  get rule_1() {
    return VAPI.Multiviewer.lift.TALLYRULE(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "rule_1"),
    );
  }
  get rule_2() {
    return VAPI.Multiviewer.lift.TALLYRULE(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 2, "rule_2"),
    );
  }
  get rule_3() {
    return VAPI.Multiviewer.lift.TALLYRULE(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 3, "rule_3"),
    );
  }
  get rule_4() {
    return VAPI.Multiviewer.lift.TALLYRULE(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 4, "rule_4"),
    );
  }
  get rule_5() {
    return VAPI.Multiviewer.lift.TALLYRULE(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 5, "rule_5"),
    );
  }
  get rule_6() {
    return VAPI.Multiviewer.lift.TALLYRULE(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 6, "rule_6"),
    );
  }
  get rule_7() {
    return VAPI.Multiviewer.lift.TALLYRULE(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 7, "rule_7"),
    );
  }
}
export class TEXTBOX
  implements VScript.Referenceable<"Multiviewer::Data::TEXTBOX">
{
  readonly type_identifier = "Multiviewer::Data::TEXTBOX" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get display_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.DISPLAYMODE,
    VAPI.Multiviewer.TEXTBOX
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.DISPLAYMODE,
      VAPI.Multiviewer.TEXTBOX
    >(
      this,
      "display_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 geometry(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number, number],
    [number, number, number, number, number],
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.GEOMETRY,
    VAPI.Multiviewer.TEXTBOX
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number, number],
      [number, number, number, number, number],
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.GEOMETRY,
      VAPI.Multiviewer.TEXTBOX
    >(
      this,
      "geometry" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      {
        lift: VAPI.Multiviewer.lift.GEOMETRY,
        lower: VAPI.Multiviewer.lower.GEOMETRY,
      },
      null,
    );
  }
  get bgnd() {
    return VAPI.Multiviewer.lift.BOX(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 2, "bgnd"),
    );
  }
  get label() {
    return VAPI.Multiviewer.lift.LABEL(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 3, "label"),
    );
  }
  get arg0(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.Primitives.Signed32,
    VAPI.Primitives.Signed32,
    VAPI.Multiviewer.TEXTBOX
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.Primitives.Signed32,
      VAPI.Primitives.Signed32,
      VAPI.Multiviewer.TEXTBOX
    >(
      this,
      "arg0" 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 arg1(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.Primitives.Signed32,
    VAPI.Primitives.Signed32,
    VAPI.Multiviewer.TEXTBOX
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.Primitives.Signed32,
      VAPI.Primitives.Signed32,
      VAPI.Multiviewer.TEXTBOX
    >(
      this,
      "arg1" 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 flash_bgnd_colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.TEXTBOX
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.TEXTBOX
    >(
      this,
      "flash_bgnd_colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
  get flash_label_colour(): VScript.rwKeyword<
    VScript.VSocket,
    [number, number, number, number],
    [number, number, number, number],
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
    VAPI.Multiviewer.TEXTBOX
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      [number, number, number, number],
      [number, number, number, number],
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.HSLCOLOURWITHOPACITY,
      VAPI.Multiviewer.TEXTBOX
    >(
      this,
      "flash_label_colour" as VScript.SysName,
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      {
        lift: VAPI.Multiviewer.lift.HSLCOLOURWITHOPACITY,
        lower: VAPI.Multiviewer.lower.HSLCOLOURWITHOPACITY,
      },
      null,
    );
  }
  get flash_speed(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.TEXTBOX
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.TEXTBOX
    >(
      this,
      "flash_speed" 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 TEXTBOXAsNamedTableRow extends TEXTBOX {
  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 type TIMEZONE = number;
export type TIMEFORMAT = "HHMMSS" | "HMMSS12";
export class TMPREMOVEDFROMPIPStruct
  implements VScript.Referenceable<"Multiviewer::Data::TMPREMOVEDFROMPIPStruct">
{
  readonly type_identifier =
    "Multiviewer::Data::TMPREMOVEDFROMPIPStruct" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get alarms() {
    return VAPI.ClusterMonitoringObjects.lift.ClusterMonitoringObjectAlarmsEnable(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 0, "alarms"),
    );
  }
}
export type TUnsignedMax = number;
export type VirtualXY = number;
export type Width = number;
export type WidthZero = number;
export class PPMSCALESETTINGSDBFSRange
  implements
    VScript.Referenceable<"Multiviewer::Data::PPMSCALESETTINGS::DBFSRange">
{
  readonly type_identifier =
    "Multiviewer::Data::PPMSCALESETTINGS::DBFSRange" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get safe_area(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSDBFSRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSDBFSRange
    >(
      this,
      "safe_area" 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 operation_area(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSDBFSRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSDBFSRange
    >(
      this,
      "operation_area" 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 min_level(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSDBFSRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSDBFSRange
    >(
      this,
      "min_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 max_level(): VScript.rwKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.Multiviewer.PPMSCALESETTINGSDBFSRange
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.Multiviewer.PPMSCALESETTINGSDBFSRange
    >(
      this,
      "max_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,
    );
  }
}
export const Enums = {
  TIMEFORMAT: ["HHMMSS", "HMMSS12"] as TIMEFORMAT[],
  STOPWATCHSTATE: ["STOP", "PAUSE", "RUN", "LAP"] as STOPWATCHSTATE[],
  STOPWATCHMODE: [
    "OFF",
    "COUNT_UP_DURATION",
    "COUNT_DOWN_DURATION",
    "COUNT_UP_TARGET",
    "COUNT_DOWN_TARGET",
    "COUNT_UP_START",
  ] as STOPWATCHMODE[],
  STOPWATCHCMDTYPE: [
    "eNone",
    "eStart",
    "eStop",
    "ePause",
    "eReset",
    "eRestart",
    "eLap",
  ] as STOPWATCHCMDTYPE[],
  RESOLUTIONLEVEL: [
    "UNDEFINED",
    "FULL_SIZE",
    "ONE_4",
    "ONE_16",
    "ONE_64",
    "ONE_256",
  ] as RESOLUTIONLEVEL[],
  PPMScaleType: ["dBFS", "DIN", "Nordic", "BBC"] as PPMScaleType[],
  PPMScalePosition: [
    "Left",
    "Right",
    "LeftAndRight",
    "None",
  ] as PPMScalePosition[],
  PPMDisplayMode: [
    "ColourBars",
    "ColourBarsGradient",
    "ColourLEDs",
    "ColourLEDsGradient",
  ] as PPMDisplayMode[],
  PPMDECAY: [
    "decay_Fast",
    "decay_24db_2_8s",
    "decay_20db_1_7s",
    "decay_20db_1_5s",
  ] as PPMDECAY[],
  PIPTALLYMODE: [
    "PIP_TALLY_MASK",
    "VIDEO_SOURCE_TALLY_MASK",
    "MONITORING_OBJECT_TALLY_MASK",
  ] as PIPTALLYMODE[],
  PIPPPMALIGNMENT: [
    "LEFT_INSIDE",
    "LEFT_OUTSIDE",
    "RIGHT_INSIDE",
    "RIGHT_OUTSIDE",
  ] as PIPPPMALIGNMENT[],
  PEAKHOLDTIME: [
    "Off",
    "OneSecond",
    "TwoSeconds",
    "ThreeSeconds",
    "FourSeconds",
  ] as PEAKHOLDTIME[],
  PEAKHOLDDECAY: ["Off", "Slow", "Medium", "Fast"] as PEAKHOLDDECAY[],
  MDMODE: ["SINGLE", "DUAL", "TRIPLE"] as MDMODE[],
  MDCELLMODE: [
    "AUDIO_SOURCE_0_NAME",
    "LABEL",
    "PIP_NAME",
    "METADATA_SOURCE_0_NAME",
    "METADATA_SOURCE_0_TIMECODE",
    "MONITORING_OBJECT_VIDEO_SOURCE_LABEL",
    "MONITORING_OBJECT_USER_LABEL_0",
    "MONITORING_OBJECT_USER_LABEL_1",
    "MONITORING_OBJECT_USER_LABEL_2",
    "MONITORING_OBJECT_USER_LABEL_3",
    "MONITORING_OBJECT_USER_LABEL_4",
    "MONITORING_OBJECT_USER_LABEL_5",
    "VIDEO_SOURCE_LABEL",
    "VIDEO_SOURCE_0_NAME",
    "VIDEO_STANDARD",
  ] as MDCELLMODE[],
  HEADLAYOUTMODE: [
    "MANUAL",
    "AUTO",
    "AUTO_MONITORING",
    "PATTERN_ID",
  ] as HEADLAYOUTMODE[],
  FONTSTYLE: ["NORMAL", "ITALIC", "BOLD", "BOLD_ITALIC"] as FONTSTYLE[],
  FONTFAMILY: [
    "OPEN_SANS",
    "DSEG7_Classic",
    "DSEG7_Classic_MINI",
    "DSEG7_Modern",
    "DSEG7_Modern_MINI",
    "DSEG14_Classic",
    "DSEG14_Classic_MINI",
    "DSEG14_Modern",
    "DSEG14_Modern_MINI",
    "NOTO_SANS_TC",
    "NOTO_SANS_MONO",
    "FIRA_CODE_MONO",
  ] as FONTFAMILY[],
  DISPLAYMODE: ["ON", "OFF", "NAME"] as DISPLAYMODE[],
  BORDERRADIUSCORNERS: [
    "All",
    "Top",
    "Bottom",
    "Left",
    "Right",
    "TopLeft",
    "TopRight",
    "BottomLeft",
    "BottomRight",
  ] as BORDERRADIUSCORNERS[],
  ALIGNMENT: ["INSIDE", "OUTSIDE"] as ALIGNMENT[],
} as const;
