import * as VScript from "vscript";
import * as _NetworkInterfaces from "./NetworkInterfaces";
import * as _Audio from "./Audio";
import * as _Primitives from "./Primitives";
import * as _Video from "./Video";
import * as _Time from "./Time";
export declare const lift: {
    readonly TransmitterOutputPortSingle: (kwl: string | null, socket: VScript.VSocket) => TransmitterOutputPortSingle | null;
    readonly TransmitterOutputPortMulti: (kwl: string | null, socket: VScript.VSocket) => TransmitterOutputPortMulti | null;
    readonly MetaStreamData: (kwl: string | null, socket: VScript.VSocket) => MetaStreamData | null;
    readonly VideoStreamData: (kwl: string | null, socket: VScript.VSocket) => VideoStreamData | null;
    readonly Generator: (x: any | null, _: VScript.VSocket) => Generator | null;
    readonly EventTransmitter: (kwl: string | null, socket: VScript.VSocket) => EventTransmitter | null;
    readonly VancControl: (kwl: string | null, socket: VScript.VSocket) => VancControl | null;
    readonly BypassReplaceFlags: (kwl: string | null, socket: VScript.VSocket) => BypassReplaceFlags | null;
    readonly AfdInserter: (kwl: string | null, socket: VScript.VSocket) => AfdInserter | null;
    readonly TimecodeInserter: (kwl: string | null, socket: VScript.VSocket) => TimecodeInserter | null;
    readonly TimecodeInserterFreerun: (x: any | null, _: VScript.VSocket) => TimecodeInserterFreerun | null;
    readonly TimecodeInserterEnable: (x: any | null, _: VScript.VSocket) => TimecodeInserterEnable | null;
    readonly AudioControlSdi: (kwl: string | null, socket: VScript.VSocket) => AudioControlSdi | null;
    readonly AudioControl: (kwl: string | null, socket: VScript.VSocket) => AudioControl | null;
    readonly Groups: (kwl: string | null, socket: VScript.VSocket) => Groups | null;
    readonly Peaks: (kwl: string | null, socket: VScript.VSocket) => Peaks | null;
    readonly VideoSource: (kwl: string | null, socket: VScript.VSocket) => VideoSource | null;
    readonly NAME: (kwl: string | null, socket: VScript.VSocket) => NAME | null;
    readonly LatchControl: (kwl: string | null, socket: VScript.VSocket) => LatchControl | null;
};
export declare const lower: {
    readonly TransmitterOutputPortSingle: (ref: TransmitterOutputPortSingle | null) => string | null;
    readonly TransmitterOutputPortMulti: (ref: TransmitterOutputPortMulti | null) => string | null;
    readonly MetaStreamData: (ref: MetaStreamData | null) => string | null;
    readonly VideoStreamData: (ref: VideoStreamData | null) => string | null;
    readonly Generator: (x: Generator | null) => (number | "P1_0" | "P1_1" | "P1_2" | "P1_3" | "P2_0" | "P2_1" | "P2_2" | "P2_3")[] | null;
    readonly EventTransmitter: (ref: EventTransmitter | null) => string | null;
    readonly VancControl: (ref: VancControl | null) => string | null;
    readonly BypassReplaceFlags: (ref: BypassReplaceFlags | null) => string | null;
    readonly AfdInserter: (ref: AfdInserter | null) => string | null;
    readonly TimecodeInserter: (ref: TimecodeInserter | null) => string | null;
    readonly TimecodeInserterFreerun: (x: TimecodeInserterFreerun | null) => number[] | null;
    readonly TimecodeInserterEnable: (x: TimecodeInserterEnable | null) => boolean[] | null;
    readonly AudioControlSdi: (ref: AudioControlSdi | null) => string | null;
    readonly AudioControl: (ref: AudioControl | null) => string | null;
    readonly Groups: (ref: Groups | null) => string | null;
    readonly Peaks: (ref: Peaks | null) => string | null;
    readonly VideoSource: (ref: VideoSource | null) => string | null;
    readonly NAME: (ref: NAME | null) => string | null;
    readonly LatchControl: (ref: LatchControl | null) => string | null;
};
export declare type AudioFormat = "AM824" | "L24" | "L16";
export declare type Bandwidth = "b1_5Gb" | "b3_0Gb" | "b12_0Gb";
export declare type PacketTime = "p1" | "p0_666" | "p0_500" | "p0_333" | "p0_250" | "p0_125";
export declare type TRSEmbedder = "Embed" | "Bypass" | "Off";
export declare type VANCTimecodeFlag = "Passthrough" | "Blank" | "Freerun" | "Generator";
export declare type VANCAfdFlag = "Passthrough" | "Blank" | "Replace";
export declare type VANCAfdCode = "Code_0010" | "Code_0011" | "Code_0100" | "Code_0101" | "Code_0110" | "Code_0111" | "Code_1000" | "Code_1001" | "Code_1010" | "Code_1011" | "Code_1100" | "Code_1101" | "Code_1110" | "Code_1111";
export declare type InputTypes = "SDI" | "VidStream" | "AudStream" | "SRC" | "DELAY" | "TestTone" | "Volume" | "Mixer";
export declare type MediaClockControl = "Propagate" | "Timesource";
export declare type LatchMode = "On_Start" | "Continuous";
export declare class LatchControl {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get mode(): VScript.duplexKeyword<LatchMode, LatchMode, LatchControl>;
    get attack_time(): VScript.rwKeyword<number, number, LatchControl>;
    get mediaclock_late(): VScript.rwKeyword<number, number, LatchControl>;
    get mediaclock_early(): VScript.rwKeyword<number, number, LatchControl>;
}
export declare class NAME {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Is the textual session name
    */
    get session_name(): VScript.duplexKeyword<string, string, NAME>;
    /**
      Provides textual information about the session
    */
    get session_description(): VScript.duplexKeyword<string, string, NAME>;
}
export declare class VideoSource {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get t_src(): VScript.duplexKeyword<string | null, _Time.Source | null, VideoSource>;
    get v_src(): VScript.duplexKeyword<string | null, _Video.Essence | null, VideoSource>;
    get phase_target(): VScript.duplexKeyword<number, number, VideoSource>;
    get in_phase(): VScript.rKeyword<number, number, VideoSource>;
    get alert_level(): VScript.rKeyword<_Primitives.AlertLevel, _Primitives.AlertLevel, VideoSource>;
    get phase_rst_counter(): VScript.rKeyword<number, number, VideoSource>;
}
export declare class Peaks {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get peakmeter(): VScript.rKeyword<[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], Peaks>;
}
export declare class PeaksAsArrayRow<ParentType extends VScript.StronglyTypedSubtree> extends Peaks {
    readonly index: number;
    readonly parent: ParentType;
    constructor(st: VScript.Subtree, index: number, parent: ParentType);
}
export declare class Groups {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get group(): VScript.duplexKeyword<TRSEmbedder, TRSEmbedder, Groups>;
}
export declare class GroupsAsArrayRow<ParentType extends VScript.StronglyTypedSubtree> extends Groups {
    readonly index: number;
    readonly parent: ParentType;
    constructor(st: VScript.Subtree, index: number, parent: ParentType);
}
export declare class AudioControl {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get source(): VScript.duplexKeyword<string | null, _Audio.Essence | null, AudioControl>;
    get group_enable(): VScript.StronglyTypedArray<AudioControl, Groups, VScript.RowView<Groups>>;
    get peak_meter(): VScript.StronglyTypedArray<AudioControl, Peaks, VScript.RowView<Peaks>>;
}
export declare class AudioControlSdi {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get source(): VScript.duplexKeyword<string | null, _Audio.Essence | null, AudioControlSdi>;
    get group_enable(): VScript.StronglyTypedArray<AudioControlSdi, Groups, VScript.RowView<Groups>>;
}
interface TimecodeInserterEnable {
    ltc: boolean;
    vitc1: boolean;
    vitc2: boolean;
}
interface TimecodeInserterFreerun {
    hours: number;
    minutes: number;
    seconds: number;
    frames: number;
}
export declare class TimecodeInserter {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get enable(): VScript.rwKeyword<any, TimecodeInserterEnable | null, this>;
    get generator(): VScript.duplexKeyword<string | null, _Time.Source | null, TimecodeInserter>;
    get freerun(): VScript.rwKeyword<any, TimecodeInserterFreerun | null, this>;
}
export declare class AfdInserter {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get code(): VScript.rwKeyword<VANCAfdCode, VANCAfdCode, AfdInserter>;
}
export declare class BypassReplaceFlags {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Bypass unknown meta data
    */
    get c_unknown(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass/Replace DID 60 SDID 60 (SMPTE 12 - Timecode)
    */
    get y_timecode(): VScript.rwKeyword<VANCTimecodeFlag, VANCTimecodeFlag, BypassReplaceFlags>;
    /**
      Bypass DID 61 SDID 01 (SMPTE 334-1 CEA-708 / CDP)
    */
    get y_334_cea_708_cdp(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass DID 61 SDID 02 (SMPTE 334-1 CEA-608)
    */
    get y_334_cea_608(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass DID 62 SDID 01 (SMPTE 334-1 Program description)
    */
    get y_334_program(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass DID 62 SDID 02 (SMPTE 334-1 Data broadcast)
    */
    get y_334_data(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass DID 62 SDID 03 (SMPTE 334-1 VBI data)
    */
    get y_334_vbi(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass/Replace DID 41 SDID 05 (SMPTE 2016 - Active Format Desctiption)
    */
    get y_2016_afd(): VScript.rwKeyword<VANCAfdFlag, VANCAfdFlag, BypassReplaceFlags>;
    /**
      Bypass DID 41 SDID 07 (SMPTE 2010 - ANSI/SCTE 104)
    */
    get y_2010_ansi_scte_104(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass DID 41 SDID 08 (SMPTE 2031 - DVB/SCTE VBI)
    */
    get y_2031_dvb_scte_vbi(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass DID 43 SDID 02 (RDD 8 / OP-47)
    */
    get y_rdd_8_op_47(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass DID 45 (SMPTE 2020 - Audio Meta Data)
    */
    get y_2020_amd(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass DID 53 (OBS Source ID)
    */
    get y_obs(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
    /**
      Bypass unknown meta data
    */
    get y_unknown(): VScript.rwKeyword<boolean, boolean, BypassReplaceFlags>;
}
export declare class VancControl {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get override_smpte_352(): VScript.rwKeyword<boolean, boolean, VancControl>;
    get payload(): VScript.rwKeyword<number, number, VancControl>;
    get passthrough_c_y_0(): BypassReplaceFlags;
    get timecode_inserter(): TimecodeInserter;
    get afd_inserter(): AfdInserter;
}
export declare class EventTransmitter {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get src_ip_addr(): VScript.duplexKeyword<string, string, EventTransmitter>;
    get interface(): VScript.duplexKeyword<string | null, _NetworkInterfaces.VirtualInterface | null, EventTransmitter>;
    /**
      Create
    */
    get create_transmitter(): VScript.wKeyword<"Click", "Click", EventTransmitter>;
}
export interface Generator {
    generator: number;
    lane: _NetworkInterfaces.Lane;
}
export declare class VideoStreamData {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get mc_address(): VScript.duplexKeyword<string, string, VideoStreamData>;
    get payload_type(): VScript.duplexKeyword<number, number, VideoStreamData>;
    get resources_a(): VScript.rKeyword<any, Generator | null, this>;
    get resources_b(): VScript.rKeyword<any, Generator | null, this>;
    get sdp(): VScript.rKeyword<string, string, VideoStreamData>;
}
export declare class MetaStreamData {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get mc_address(): VScript.duplexKeyword<string, string, MetaStreamData>;
    get payload_type(): VScript.duplexKeyword<number, number, MetaStreamData>;
    get resources(): VScript.rKeyword<any, Generator | null, this>;
    get sdp(): VScript.rKeyword<string, string, MetaStreamData>;
}
export declare class TransmitterOutputPortMulti {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Delete
    */
    get remove_output(): VScript.wKeyword<"Click", "Click", TransmitterOutputPortMulti>;
    get ip_src_ip_addr(): VScript.duplexKeyword<string, string, TransmitterOutputPortMulti>;
    get vlan_id(): VScript.rKeyword<number, number, TransmitterOutputPortMulti>;
    get interface(): VScript.duplexKeyword<string | null, _NetworkInterfaces.VirtualInterface | null, TransmitterOutputPortMulti>;
    get sdp_a(): VScript.rKeyword<string, string, TransmitterOutputPortMulti>;
    get video_stream_data(): VideoStreamData;
    get meta_stream_data(): MetaStreamData;
}
export declare class TransmitterOutputPortMultiAsTableRow extends TransmitterOutputPortMulti {
    readonly enclosing_table: VScript.StronglyTypedTable<TransmitterOutputPortMulti>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<TransmitterOutputPortMulti>);
}
export declare class TransmitterOutputPortSingle {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Delete
    */
    get remove_output(): VScript.wKeyword<"Click", "Click", TransmitterOutputPortSingle>;
    get resources(): VScript.rKeyword<any, Generator | null, this>;
    get ip_src_ip_addr(): VScript.duplexKeyword<string, string, TransmitterOutputPortSingle>;
    get vlan_id(): VScript.rKeyword<number, number, TransmitterOutputPortSingle>;
    get interface(): VScript.duplexKeyword<string | null, _NetworkInterfaces.VirtualInterface | null, TransmitterOutputPortSingle>;
    get mc_address(): VScript.duplexKeyword<string, string, TransmitterOutputPortSingle>;
    get payload_type(): VScript.duplexKeyword<number, number, TransmitterOutputPortSingle>;
    get sdp_a(): VScript.rKeyword<string, string, TransmitterOutputPortSingle>;
}
export declare class TransmitterOutputPortSingleAsTableRow extends TransmitterOutputPortSingle {
    readonly enclosing_table: VScript.StronglyTypedTable<TransmitterOutputPortSingle>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<TransmitterOutputPortSingle>);
}
export declare const Enums: {
    readonly LatchMode: LatchMode[];
    readonly MediaClockControl: MediaClockControl[];
    readonly InputTypes: InputTypes[];
    readonly VANCAfdCode: VANCAfdCode[];
    readonly VANCAfdFlag: VANCAfdFlag[];
    readonly VANCTimecodeFlag: VANCTimecodeFlag[];
    readonly TRSEmbedder: TRSEmbedder[];
    readonly PacketTime: PacketTime[];
    readonly Bandwidth: Bandwidth[];
    readonly AudioFormat: _Audio.Format[];
};
export {};
