import * as VScript from "vscript";
import * as _Audio from "./Audio";
export declare const lift: {
    readonly LargeCrossbar: (kwl: string | null, socket: VScript.VSocket) => LargeCrossbar | null;
    readonly LargeCrossbarOutputs: (kwl: string | null, socket: VScript.VSocket) => LargeCrossbarOutputs | null;
    readonly LargeCrossbarInputs: (kwl: string | null, socket: VScript.VSocket) => LargeCrossbarInputs | null;
    readonly Crossbar: (kwl: string | null, socket: VScript.VSocket) => Crossbar | null;
    readonly CrossbarOutputs: (kwl: string | null, socket: VScript.VSocket) => CrossbarOutputs | null;
    readonly CrossbarInputs: (kwl: string | null, socket: VScript.VSocket) => CrossbarInputs | null;
};
export declare const lower: {
    readonly LargeCrossbar: (ref: LargeCrossbar | null) => string | null;
    readonly LargeCrossbarOutputs: (ref: LargeCrossbarOutputs | null) => string | null;
    readonly LargeCrossbarInputs: (ref: LargeCrossbarInputs | null) => string | null;
    readonly Crossbar: (ref: Crossbar | null) => string | null;
    readonly CrossbarOutputs: (ref: CrossbarOutputs | null) => string | null;
    readonly CrossbarInputs: (ref: CrossbarInputs | null) => string | null;
};
declare class CrossbarInputs {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get num_channels(): VScript.rwKeyword<number, number, CrossbarInputs>;
    get source(): VScript.duplexKeyword<string | null, _Audio.Essence | null, CrossbarInputs>;
}
declare class CrossbarOutputs {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get num_channels(): VScript.rwKeyword<number, number, CrossbarOutputs>;
    get xbar(): VScript.rwKeyword<number[], number[], CrossbarOutputs>;
    get output(): _Audio.Essence;
}
export declare class Crossbar {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get num_inputs(): VScript.rwKeyword<number, number, Crossbar>;
    get num_outputs(): VScript.rwKeyword<number, number, Crossbar>;
    get cross_fade(): VScript.rwKeyword<number, number, Crossbar>;
    get inputs(): VScript.StronglyTypedTable<CrossbarInputs, VScript.TableRowView<CrossbarInputs>>;
    get outputs(): VScript.StronglyTypedTable<CrossbarOutputs, VScript.TableRowView<CrossbarOutputs>>;
}
export declare class CrossbarAsNamedTableRow extends Crossbar {
    private readonly raw_row;
    readonly enclosing_table: VScript.StronglyTypedNamedTable<Crossbar>;
    readonly index: number;
    constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<Crossbar>);
    rename(name: string, opts?: VScript.CommonWriteOptions): Promise<void>;
    delete(opts?: VScript.CommonWriteOptions): Promise<void>;
}
declare class LargeCrossbarInputs {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get num_channels(): VScript.rwKeyword<number, number, LargeCrossbarInputs>;
    get source(): VScript.duplexKeyword<string | null, _Audio.Essence | null, LargeCrossbarInputs>;
}
declare class LargeCrossbarOutputs {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get num_channels(): VScript.rwKeyword<number, number, LargeCrossbarOutputs>;
    get xbar(): VScript.rwKeyword<number[], number[], LargeCrossbarOutputs>;
    get output(): _Audio.Essence;
}
export declare class LargeCrossbar {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get num_inputs(): VScript.rwKeyword<number, number, LargeCrossbar>;
    get num_outputs(): VScript.rwKeyword<number, number, LargeCrossbar>;
    get cross_fade(): VScript.rwKeyword<number, number, LargeCrossbar>;
    get inputs(): VScript.StronglyTypedTable<LargeCrossbarInputs, VScript.TableRowView<LargeCrossbarInputs>>;
    get outputs(): VScript.StronglyTypedTable<LargeCrossbarOutputs, VScript.TableRowView<LargeCrossbarOutputs>>;
}
export declare class LargeCrossbarAsNamedTableRow extends LargeCrossbar {
    private readonly raw_row;
    readonly enclosing_table: VScript.StronglyTypedNamedTable<LargeCrossbar>;
    readonly index: number;
    constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<LargeCrossbar>);
    rename(name: string, opts?: VScript.CommonWriteOptions): Promise<void>;
    delete(opts?: VScript.CommonWriteOptions): Promise<void>;
}
export declare class All {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get large(): VScript.StronglyTypedNamedTable<LargeCrossbar, VScript.NamedTableRowView<LargeCrossbar>>;
    get pool(): VScript.StronglyTypedNamedTable<Crossbar, VScript.NamedTableRowView<Crossbar>>;
}
export {};
