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 = {
  ResourceStatus: (_raw: VScript.DataViews.Subtree<VScript.VSocket>) =>
    new ResourceStatus(_raw),
} as const;
export const lower = {
  ResourceStatus: (_x: ResourceStatus) => _x.raw.kwl,
} as const;
export class ResourceStatus
  implements VScript.Referenceable<"AudioMixer::Data::ResourceStatus">
{
  readonly type_identifier = "AudioMixer::Data::ResourceStatus" as const;
  constructor(readonly raw: VScript.DataViews.Subtree<VScript.VSocket>) {}
  get list_of_free_outputs(): VScript.rKeyword<
    VScript.VSocket,
    string,
    string,
    VAPI.AudioMixer.ResourceStatus
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      string,
      string,
      VAPI.AudioMixer.ResourceStatus
    >(this, "list_of_free_outputs" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get number_of_dangling_channel_blocks(): VScript.rKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.AudioMixer.ResourceStatus
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.AudioMixer.ResourceStatus
    >(this, "number_of_dangling_channel_blocks" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
  get max_size_of_dangling_channel_block(): VScript.rKeyword<
    VScript.VSocket,
    number,
    number,
    VAPI.AudioMixer.ResourceStatus
  > {
    return new VScript.rKeyword<
      VScript.VSocket,
      number,
      number,
      VAPI.AudioMixer.ResourceStatus
    >(this, "max_size_of_dangling_channel_block" as VScript.SysName, {
      lift: (x: any /* FIXME */, _: VScript.VSocket) => x,
      lower: (x: any /* FIXME */, _: VScript.VSocket) => x,
    });
  }
}
