import * as VScript from "vscript";
import * as _SDP from "./SDP";
import * as _NetworkInterfaces from "./NetworkInterfaces";
import * as _Definitions from "./Definitions";
import * as _Video from "./Video";
export declare const lift: {
    readonly SingleVideoTransmitter: (kwl: string | null, socket: VScript.VSocket) => SingleVideoTransmitter | null;
    readonly MediaClock: (kwl: string | null, socket: VScript.VSocket) => MediaClock | null;
    readonly InternalStatus: (kwl: string | null, socket: VScript.VSocket) => InternalStatus | null;
    readonly StatusBlocks: (kwl: string | null, socket: VScript.VSocket) => StatusBlocks | null;
    readonly Constraints: (kwl: string | null, socket: VScript.VSocket) => Constraints | null;
};
export declare const lower: {
    readonly SingleVideoTransmitter: (ref: SingleVideoTransmitter | null) => string | null;
    readonly MediaClock: (ref: MediaClock | null) => string | null;
    readonly InternalStatus: (ref: InternalStatus | null) => string | null;
    readonly StatusBlocks: (ref: StatusBlocks | null) => string | null;
    readonly Constraints: (ref: Constraints | null) => string | null;
};
export declare class Constraints {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get standard(): VScript.duplexKeyword<_Video.Standard, _Video.Standard, Constraints>;
    get sub_stream(): VScript.rKeyword<_Video.SubStream, _Video.SubStream, Constraints>;
    get max_bandwidth(): VScript.duplexKeyword<_Definitions.Bandwidth, _Definitions.Bandwidth, Constraints>;
    get reserve_uhd_resources(): VScript.duplexKeyword<boolean, boolean, Constraints>;
}
export declare class StatusBlocks {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get lane(): VScript.rKeyword<_NetworkInterfaces.Lane, _NetworkInterfaces.Lane, StatusBlocks>;
    get number_of_blocks(): VScript.rKeyword<number, number, StatusBlocks>;
    get block1(): VScript.rKeyword<number, number, StatusBlocks>;
    get block2(): VScript.rKeyword<number, number, StatusBlocks>;
    get block3(): VScript.rKeyword<number, number, StatusBlocks>;
}
export declare class InternalStatus {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get video_a(): StatusBlocks;
    get video_b(): StatusBlocks;
    get meta(): StatusBlocks;
}
export declare class InternalStatusAsArrayRow<ParentType extends VScript.StronglyTypedSubtree> extends InternalStatus {
    readonly index: number;
    readonly parent: ParentType;
    constructor(st: VScript.Subtree, index: number, parent: ParentType);
}
export declare class MediaClock {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get clock_mode(): VScript.duplexKeyword<_Definitions.MediaClockControl, _Definitions.MediaClockControl, MediaClock>;
    get offset(): VScript.duplexKeyword<number, number, MediaClock>;
    get latched_timestamp(): VScript.rKeyword<number, number, MediaClock>;
    get hw_latched_timestamp(): VScript.rKeyword<number, number, MediaClock>;
    get latch_control(): _Definitions.LatchControl;
}
export declare class SingleVideoTransmitter {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get transport_format(): VScript.duplexKeyword<_Video.TransportFormat, _Video.TransportFormat, SingleVideoTransmitter>;
    get dirac_compression(): VScript.duplexKeyword<_Video.DiracCompression, _Video.DiracCompression, SingleVideoTransmitter>;
    get add_st2110_40(): VScript.duplexKeyword<boolean, boolean, SingleVideoTransmitter>;
    get active(): VScript.duplexKeyword<boolean, boolean, SingleVideoTransmitter>;
    /**
      Delete
    */
    get remove_transmitter(): VScript.wKeyword<"Click", "Click", SingleVideoTransmitter>;
    /**
      Create new output
    */
    get add_new_output(): VScript.wKeyword<"Click", "Click", SingleVideoTransmitter>;
    /**
      mismatching standards
    */
    get status_std_mismatch(): VScript.rKeyword<boolean, boolean, SingleVideoTransmitter>;
    get error_irq_counter(): VScript.rKeyword<number, number, SingleVideoTransmitter>;
    /**
      reset error counter
    */
    get reset_irq_counter(): VScript.wKeyword<"Click", "Click", SingleVideoTransmitter>;
    get sub_stream(): VScript.rKeyword<_Video.SubStream, _Video.SubStream, SingleVideoTransmitter>;
    get standard(): VScript.rKeyword<_Video.Standard, _Video.Standard, SingleVideoTransmitter>;
    get sdp_a(): VScript.rKeyword<string, string, SingleVideoTransmitter>;
    get output_port(): VScript.StronglyTypedTable<_Definitions.TransmitterOutputPortMulti, VScript.TableRowView<_Definitions.TransmitterOutputPortMulti>>;
    get vid_source(): _Definitions.VideoSource;
    get vanc_control(): _Definitions.VancControl;
    get audio_control(): _Definitions.AudioControl;
    get mediaclock(): MediaClock;
    get constraints(): Constraints;
    get stream_name(): _Definitions.NAME;
    get internal_status(): VScript.StronglyTypedArray<SingleVideoTransmitter, InternalStatus, VScript.RowView<InternalStatus>>;
}
export declare class SingleVideoTransmitterAsTableRow extends SingleVideoTransmitter {
    readonly enclosing_table: VScript.StronglyTypedTable<SingleVideoTransmitter>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<SingleVideoTransmitter>);
}
export declare class All {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      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.
    */
    get sdp_format(): VScript.rwKeyword<_SDP.SDPFormat, _SDP.SDPFormat, All>;
    get mode_1(): VScript.rKeyword<_NetworkInterfaces.PortMode, _NetworkInterfaces.PortMode, All>;
    get mode_2(): VScript.rKeyword<_NetworkInterfaces.PortMode, _NetworkInterfaces.PortMode, All>;
    get preserve_src_ip_entry(): VScript.rwKeyword<boolean, boolean, All>;
    get check_ip_address_timeout(): VScript.rwKeyword<number, number, All>;
    get transmitter_assignment(): _Definitions.EventTransmitter;
    get pool(): VScript.StronglyTypedTable<SingleVideoTransmitter, VScript.TableRowView<SingleVideoTransmitter>>;
}
