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 = {
  ManifoldCoreStatistics: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new ManifoldCoreStatistics(_raw),
  ManifoldMemoryStatistics: (
    _raw: VScript.DataViews.Subtree<VScript.VSocket>,
  ) => new ManifoldMemoryStatistics(_raw),
  UDXFilter: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new UDXFilter(_raw),
  UDXStatistics: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new UDXStatistics(_raw),
  UDXTransform: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new UDXTransform(_raw),
  UDXVideoCrop: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new UDXVideoCrop(_raw),
} as const;
export const lower = {
  ManifoldCoreStatistics: (_x: ManifoldCoreStatistics) => _x.raw.kwl,
  ManifoldMemoryStatistics: (_x: ManifoldMemoryStatistics) => _x.raw.kwl,
  UDXFilter: (_x: UDXFilter) => _x.raw.kwl,
  UDXStatistics: (_x: UDXStatistics) => _x.raw.kwl,
  UDXTransform: (_x: UDXTransform) => _x.raw.kwl,
  UDXVideoCrop: (_x: UDXVideoCrop) => _x.raw.kwl,
} as const;
export type Height = number;
export class ManifoldCoreStatistics
  implements VScript.Referenceable<"UDX::Data::ManifoldCoreStatistics">
{
  readonly type_identifier = "UDX::Data::ManifoldCoreStatistics" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get sync_length(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.ManifoldCoreStatistics
    >(this, "sync_length" 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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.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.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.ManifoldCoreStatistics
    >(this, "total_primitives_num" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get core_total_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.ManifoldCoreStatistics
    >(this, "core_total_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get core_active_clks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.ManifoldCoreStatistics
    >(this, "core_active_clks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get core_load(): VScript.rKeyword<
    VScript.VSocket,
    number,
    VAPI.UDX.TUnsignedMax,
    VAPI.UDX.ManifoldCoreStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      VAPI.UDX.TUnsignedMax,
      VAPI.UDX.ManifoldCoreStatistics
    >(this, "core_load" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
}
export class ManifoldMemoryStatistics
  implements VScript.Referenceable<"UDX::Data::ManifoldMemoryStatistics">
{
  readonly type_identifier = "UDX::Data::ManifoldMemoryStatistics" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get mem_band_max_gbits(): VScript.rKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.UDX.ManifoldMemoryStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.UDX.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.UDX.ManifoldMemoryStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.UDX.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.UDX.ManifoldMemoryStatistics
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.UDX.ManifoldMemoryStatistics
    >(this, "mem_band_read_gbits" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
}
export type TUnsignedMax = number;
export type UDXVideoStandard =
  | "PAL"
  | "NTSC"
  | "HD720p25"
  | "HD720p29_97"
  | "HD720p30"
  | "HD720p50"
  | "HD720p59_94"
  | "HD720p60"
  | "HD1080p23_98"
  | "HD1080sF23_98"
  | "HD1080p24"
  | "HD1080sF24"
  | "HD1080p25"
  | "HD1080sF25"
  | "HD1080p29_97"
  | "HD1080sF29_97"
  | "HD1080p30"
  | "HD1080sF30"
  | "HD1080i50"
  | "HD1080i59_94"
  | "HD1080i60"
  | "HD1080p50"
  | "HD1080p59_94"
  | "HD1080p60"
  | "HD2160p50"
  | "HD2160p59_94"
  | "HD2160p60";
export type UDXASPECTRATIO =
  | "ANAMORPHIC"
  | "LETTERBOX"
  | "PILLARBOX"
  | "CENTERCUT";
export type UDXFILTERWINDOW = "HAMMING" | "KAISER";
export class UDXFilter
  implements VScript.Referenceable<"UDX::Data::UDXFilter">
{
  readonly type_identifier = "UDX::Data::UDXFilter" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXFilter
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXFilter
    >(
      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 window(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.UDX.UDXFILTERWINDOW,
    VAPI.UDX.UDXFILTERWINDOW,
    VAPI.UDX.UDXFILTERWINDOW,
    VAPI.UDX.UDXFILTERWINDOW,
    VAPI.UDX.UDXFilter
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.UDX.UDXFILTERWINDOW,
      VAPI.UDX.UDXFILTERWINDOW,
      VAPI.UDX.UDXFILTERWINDOW,
      VAPI.UDX.UDXFILTERWINDOW,
      VAPI.UDX.UDXFilter
    >(
      this,
      "window" 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 h_filter_offset(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.UDX.UDXFilter
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.UDX.UDXFilter
    >(
      this,
      "h_filter_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 v_filter_offset(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.UDX.UDXFilter
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.UDX.UDXFilter
    >(
      this,
      "v_filter_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,
    );
  }
}
export type UDXOFFSETMODE = "AUTO" | "OFFSET_AUTO" | "OFFSET_MANUAL";
export type UDXSDACTIVEWIDTH = "W720" | "W702";
export type UDXSOURCESHOWMODE = "SHOW_BLACK" | "SHOW_LAST_FRAME";
export class UDXStatistics
  implements VScript.Referenceable<"UDX::Data::UDXStatistics">
{
  readonly type_identifier = "UDX::Data::UDXStatistics" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get cores() {
    return new VScript.StronglyTypedArray<
      VScript.VSocket,
      "UDX::Data::ManifoldCoreStatistics",
      VAPI.UDX.ManifoldCoreStatistics
    >(
      VScript.VAPIHelpers.subtree_array_child_checked(this.raw, 0, "cores"),
      (st: VScript.DataViews.Subtree<VScript.VSocket>, _: VScript.VSocket) =>
        VAPI.UDX.lift.ManifoldCoreStatistics(st),
    );
  }
  get memory() {
    return VAPI.UDX.lift.ManifoldMemoryStatistics(
      VScript.VAPIHelpers.subtree_child_checked(this.raw, 1, "memory"),
    );
  }
}
export class UDXTransform
  implements VScript.Referenceable<"UDX::Data::UDXTransform">
{
  readonly type_identifier = "UDX::Data::UDXTransform" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get pos_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXTransform
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXTransform
    >(
      this,
      "pos_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 pos_x(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.UDX.UDXTransform
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.UDX.UDXTransform
    >(
      this,
      "pos_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 pos_y(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.UDX.UDXTransform
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.UDX.UDXTransform
    >(
      this,
      "pos_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 size_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXTransform
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXTransform
    >(
      this,
      "size_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 size_x(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.UDX.UDXTransform
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.UDX.UDXTransform
    >(
      this,
      "size_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 size_y(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    number,
    number,
    VAPI.UDX.UDXTransform
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      number,
      number,
      VAPI.UDX.UDXTransform
    >(
      this,
      "size_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,
    );
  }
}
export class UDXVideoCrop
  implements VScript.Referenceable<"UDX::Data::UDXVideoCrop">
{
  readonly type_identifier = "UDX::Data::UDXVideoCrop" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get crop_mode(): VScript.rwKeyword<
    VScript.VSocket,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXOFFSETMODE,
    VAPI.UDX.UDXVideoCrop
  > {
    return new VScript.rwKeyword<
      VScript.VSocket,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXOFFSETMODE,
      VAPI.UDX.UDXVideoCrop
    >(
      this,
      "crop_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 left(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.UDX.Width,
    VAPI.UDX.Width,
    VAPI.UDX.UDXVideoCrop
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.UDX.Width,
      VAPI.UDX.Width,
      VAPI.UDX.UDXVideoCrop
    >(
      this,
      "left" 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 right(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.UDX.Width,
    VAPI.UDX.Width,
    VAPI.UDX.UDXVideoCrop
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.UDX.Width,
      VAPI.UDX.Width,
      VAPI.UDX.UDXVideoCrop
    >(
      this,
      "right" 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 top(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.UDX.Height,
    VAPI.UDX.Height,
    VAPI.UDX.UDXVideoCrop
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.UDX.Height,
      VAPI.UDX.Height,
      VAPI.UDX.UDXVideoCrop
    >(
      this,
      "top" 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 bottom(): VScript.dKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.UDX.Height,
    VAPI.UDX.Height,
    VAPI.UDX.UDXVideoCrop
  > {
    return new VScript.dKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.UDX.Height,
      VAPI.UDX.Height,
      VAPI.UDX.UDXVideoCrop
    >(
      this,
      "bottom" 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 Width = number;
export const Enums = {
  UDXSOURCESHOWMODE: ["SHOW_BLACK", "SHOW_LAST_FRAME"] as UDXSOURCESHOWMODE[],
  UDXSDACTIVEWIDTH: ["W720", "W702"] as UDXSDACTIVEWIDTH[],
  UDXOFFSETMODE: ["AUTO", "OFFSET_AUTO", "OFFSET_MANUAL"] as UDXOFFSETMODE[],
  UDXFILTERWINDOW: ["HAMMING", "KAISER"] as UDXFILTERWINDOW[],
  UDXASPECTRATIO: [
    "ANAMORPHIC",
    "LETTERBOX",
    "PILLARBOX",
    "CENTERCUT",
  ] as UDXASPECTRATIO[],
  UDXVideoStandard: [
    "PAL",
    "NTSC",
    "HD720p25",
    "HD720p29_97",
    "HD720p30",
    "HD720p50",
    "HD720p59_94",
    "HD720p60",
    "HD1080p23_98",
    "HD1080sF23_98",
    "HD1080p24",
    "HD1080sF24",
    "HD1080p25",
    "HD1080sF25",
    "HD1080p29_97",
    "HD1080sF29_97",
    "HD1080p30",
    "HD1080sF30",
    "HD1080i50",
    "HD1080i59_94",
    "HD1080i60",
    "HD1080p50",
    "HD1080p59_94",
    "HD1080p60",
    "HD2160p50",
    "HD2160p59_94",
    "HD2160p60",
  ] as UDXVideoStandard[],
} as const;
