import * as VScript from "vscript";
import * as _Audio from "./Audio";
import * as _Time from "./Time";
import * as _Definitions from "./Definitions";
import * as _NetworkInterfaces from "./NetworkInterfaces";
export declare const lift: {
    readonly SingleAudio: (kwl: string | null, socket: VScript.VSocket) => SingleAudio | null;
    readonly MediaClock: (kwl: string | null, socket: VScript.VSocket) => MediaClock | null;
    readonly InternalStatus: (kwl: string | null, socket: VScript.VSocket) => InternalStatus | null;
    readonly Peaks: (kwl: string | null, socket: VScript.VSocket) => Peaks | null;
};
export declare const lower: {
    readonly SingleAudio: (ref: SingleAudio | null) => string | null;
    readonly MediaClock: (ref: MediaClock | null) => string | null;
    readonly InternalStatus: (ref: InternalStatus | null) => string | null;
    readonly Peaks: (ref: Peaks | null) => string | null;
};
export declare class Peaks {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get peakmeter(): VScript.rKeyword<number[], number[], Peaks>;
}
export declare type SPSMode = "possible" | "in_use" | "is_optimized";
export declare class InternalStatus {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get packet_size(): VScript.rKeyword<number, number, InternalStatus>;
    get number_of_blocks(): VScript.rKeyword<number, number, InternalStatus>;
    get block1(): VScript.rKeyword<number, number, InternalStatus>;
    get block2(): VScript.rKeyword<number, number, InternalStatus>;
    get possible_sps_source(): VScript.rKeyword<SPSMode, SPSMode, InternalStatus>;
    get optimized_sps_used_by(): VScript.rKeyword<number, number, InternalStatus>;
    get optimized_sps_generator(): VScript.rKeyword<number, number, InternalStatus>;
    get lane(): VScript.rKeyword<_NetworkInterfaces.Lane, _NetworkInterfaces.Lane, InternalStatus>;
}
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 t_src(): VScript.duplexKeyword<string | null, _Time.Source | null, 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 SingleAudio {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get num_channels(): VScript.duplexKeyword<number, number, SingleAudio>;
    get format(): VScript.duplexKeyword<_Audio.Format, _Audio.Format, SingleAudio>;
    get packet_time(): VScript.duplexKeyword<_Definitions.PacketTime, _Definitions.PacketTime, SingleAudio>;
    get source(): VScript.duplexKeyword<string | null, _Audio.Essence | null, SingleAudio>;
    get active(): VScript.duplexKeyword<boolean, boolean, SingleAudio>;
    /**
      Delete
    */
    get remove_transmitter(): VScript.wKeyword<"Click", "Click", SingleAudio>;
    /**
      Create new output
    */
    get add_new_output(): VScript.wKeyword<"Click", "Click", SingleAudio>;
    get sdp_a(): VScript.rKeyword<string, string, SingleAudio>;
    get output_port(): VScript.StronglyTypedTable<_Definitions.TransmitterOutputPortSingle, VScript.TableRowView<_Definitions.TransmitterOutputPortSingle>>;
    get mediaclock(): MediaClock;
    get peak_meter(): Peaks;
    get internal_status(): VScript.StronglyTypedArray<SingleAudio, InternalStatus, VScript.RowView<InternalStatus>>;
    get stream_name(): _Definitions.NAME;
}
export declare class SingleAudioAsTableRow extends SingleAudio {
    readonly enclosing_table: VScript.StronglyTypedTable<SingleAudio>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<SingleAudio>);
}
export declare class All {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get max_channels(): VScript.rKeyword<number, number, 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<SingleAudio, VScript.TableRowView<SingleAudio>>;
}
export declare const Enums: {
    readonly SPSMode: SPSMode[];
};
