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 = {
  ControllerVersionWindow: (
    _raw: [null | number, null | number],
    _socket: VScript.VSocket,
  ): ControllerVersionWindow => {
    return { min: _raw[0], max: _raw[1] };
  },
} as const;
export const lower = {
  ControllerVersionWindow: (
    _x: {
      min: null | VAPI.SDP.ControllerVersion;
      max: null | VAPI.SDP.ControllerVersion;
    },
    _socket: VScript.VSocket,
  ): [null | number, null | number] => [_x.min, _x.max],
} as const;
export type ControllerID = Array<VAPI.Primitives.Unsigned8>;
export type ControllerVersion = number;
export interface ControllerVersionWindow {
  min: null | VAPI.SDP.ControllerVersion;
  max: null | VAPI.SDP.ControllerVersion;
}
/**
  The SDP format used by software versions prior to V1.3 does not fully
  comply with SMPTE 2110 specifications (for example, the RTP receiver used
  to expect `rtpmap <payload> 2110` instead of `rtpmap <payload> raw/90000`).
  By setting `legacy_sdp` to *Accept*, old-style SDP files can still be used
  during a transitional period. Note, however, that this compatibility mode
  will be deprecated at some point.
*/
export type LegacyFormatHandler = "Accept" | "Reject";
export type NetworkPath = "Primary" | "Secondary";
export type NetworkPaths = "None" | "Primary" | "Secondary" | "Both";
export type Payload = number;
/**
  The SDP format used by software versions prior to V1.3 does not fully
  comply with SMPTE 2110 specifications (for example, video transmitters used
  to emit `rtpmap <payload> 2110` instead of `rtpmap <payload> raw/90000`).
  By setting `sdp_format` to `Legacy`, old-style SDP files can still be
  generated during a transitional period. Note, however, that this
  compatibility mode will be deprecated at some point.
*/
export type SDPFormat = "Legacy" | "Modern";
export type TTL = number;
export const Enums = {
  SDPFormat: ["Legacy", "Modern"] as SDPFormat[],
  NetworkPaths: ["None", "Primary", "Secondary", "Both"] as NetworkPaths[],
  NetworkPath: ["Primary", "Secondary"] as NetworkPath[],
  LegacyFormatHandler: ["Accept", "Reject"] as LegacyFormatHandler[],
} as const;
