import * as VScript from "vscript";
import * as _MetadataProcessor from "./MetadataProcessor";
import * as _Video from "./Video";
export declare const lift: {
    readonly UDXStatistics: (kwl: string | null, socket: VScript.VSocket) => UDXStatistics | null;
    readonly ManifoldMemoryStatistics: (kwl: string | null, socket: VScript.VSocket) => ManifoldMemoryStatistics | null;
    readonly ManifoldCoreStatistics: (kwl: string | null, socket: VScript.VSocket) => ManifoldCoreStatistics | null;
    readonly UDXOutput: (kwl: string | null, socket: VScript.VSocket) => UDXOutput | null;
    readonly UDXFilter: (kwl: string | null, socket: VScript.VSocket) => UDXFilter | null;
    readonly UDXTransform: (kwl: string | null, socket: VScript.VSocket) => UDXTransform | null;
    readonly UDXVideoCrop: (kwl: string | null, socket: VScript.VSocket) => UDXVideoCrop | null;
};
export declare const lower: {
    readonly UDXStatistics: (ref: UDXStatistics | null) => string | null;
    readonly ManifoldMemoryStatistics: (ref: ManifoldMemoryStatistics | null) => string | null;
    readonly ManifoldCoreStatistics: (ref: ManifoldCoreStatistics | null) => string | null;
    readonly UDXOutput: (ref: UDXOutput | null) => string | null;
    readonly UDXFilter: (ref: UDXFilter | null) => string | null;
    readonly UDXTransform: (ref: UDXTransform | null) => string | null;
    readonly UDXVideoCrop: (ref: UDXVideoCrop | null) => string | null;
};
export declare type UDXASPECTRATIO = "ANAMORPHIC" | "LETTERBOX" | "PILLARBOX" | "CENTERCUT";
export declare type UDXSDACTIVEWIDTH = "W720" | "W702";
export declare type UDXOFFSETMODE = "AUTO" | "OFFSET_AUTO" | "OFFSET_MANUAL";
export declare type UDXFILTERWINDOW = "HAMMING" | "KAISER";
export declare class UDXVideoCrop {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get crop_mode(): VScript.rwKeyword<UDXOFFSETMODE, UDXOFFSETMODE, UDXVideoCrop>;
    get left(): VScript.duplexKeyword<number, number, UDXVideoCrop>;
    get right(): VScript.duplexKeyword<number, number, UDXVideoCrop>;
    get top(): VScript.duplexKeyword<number, number, UDXVideoCrop>;
    get bottom(): VScript.duplexKeyword<number, number, UDXVideoCrop>;
}
export declare class UDXTransform {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get pos_mode(): VScript.rwKeyword<UDXOFFSETMODE, UDXOFFSETMODE, UDXTransform>;
    get pos_x(): VScript.duplexKeyword<number, number, UDXTransform>;
    get pos_y(): VScript.duplexKeyword<number, number, UDXTransform>;
    get size_mode(): VScript.rwKeyword<UDXOFFSETMODE, UDXOFFSETMODE, UDXTransform>;
    get size_x(): VScript.duplexKeyword<number, number, UDXTransform>;
    get size_y(): VScript.duplexKeyword<number, number, UDXTransform>;
}
export declare class UDXFilter {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get mode(): VScript.rwKeyword<UDXOFFSETMODE, UDXOFFSETMODE, UDXFilter>;
    get window(): VScript.rwKeyword<UDXFILTERWINDOW, UDXFILTERWINDOW, UDXFilter>;
    get h_filter_offset(): VScript.duplexKeyword<number, number, UDXFilter>;
    get v_filter_offset(): VScript.duplexKeyword<number, number, UDXFilter>;
}
export declare class UDXOutput {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get video_source(): VScript.rwKeyword<string | null, _Video.Essence | null, UDXOutput>;
    get video_standard(): VScript.rwKeyword<_Video.Standard, _Video.Standard, UDXOutput>;
    get aspect_ratio(): VScript.duplexKeyword<UDXASPECTRATIO, UDXASPECTRATIO, UDXOutput>;
    get sd_active_pixels(): VScript.rwKeyword<UDXSDACTIVEWIDTH, UDXSDACTIVEWIDTH, UDXOutput>;
    get crop(): UDXVideoCrop;
    get transform(): UDXTransform;
    get filter(): UDXFilter;
    get signal(): _Video.Essence;
    get metadata_inserter(): _MetadataProcessor.MetadataInserter;
}
export declare class UDXOutputAsTableRow extends UDXOutput {
    readonly enclosing_table: VScript.StronglyTypedTable<UDXOutput>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<UDXOutput>);
}
export declare class ManifoldCoreStatistics {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get sync_length(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get sync_calc_length(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get output_0_primitives_num(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get output_1_primitives_num(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get output_2_primitives_num(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get output_3_primitives_num(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get output_4_primitives_num(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get output_5_primitives_num(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get output_6_primitives_num(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get output_7_primitives_num(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get total_primitives_num(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get core_total_clks(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get core_active_clks(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
    get core_load(): VScript.rKeyword<number, number, ManifoldCoreStatistics>;
}
export declare class ManifoldCoreStatisticsAsArrayRow<ParentType extends VScript.StronglyTypedSubtree> extends ManifoldCoreStatistics {
    readonly index: number;
    readonly parent: ParentType;
    constructor(st: VScript.Subtree, index: number, parent: ParentType);
}
export declare class ManifoldMemoryStatistics {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get mem_band_max_gbits(): VScript.rKeyword<number, number, ManifoldMemoryStatistics>;
    get mem_band_write_gbits(): VScript.rKeyword<number, number, ManifoldMemoryStatistics>;
    get mem_band_read_gbits(): VScript.rKeyword<number, number, ManifoldMemoryStatistics>;
}
export declare class UDXStatistics {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get cores(): VScript.StronglyTypedArray<UDXStatistics, ManifoldCoreStatistics, VScript.RowView<ManifoldCoreStatistics>>;
    get memory(): ManifoldMemoryStatistics;
}
export declare class All {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get outputs(): VScript.StronglyTypedTable<UDXOutput, VScript.TableRowView<UDXOutput>>;
    get statistics(): UDXStatistics;
}
export declare const Enums: {
    readonly UDXFILTERWINDOW: UDXFILTERWINDOW[];
    readonly UDXOFFSETMODE: UDXOFFSETMODE[];
    readonly UDXSDACTIVEWIDTH: UDXSDACTIVEWIDTH[];
    readonly UDXASPECTRATIO: UDXASPECTRATIO[];
};
