import * as VScript from "vscript";
import * as _Video from "./Video";
export declare const lift: {
    readonly SP: (kwl: string | null, socket: VScript.VSocket) => SP | null;
    readonly SPOutputs: (kwl: string | null, socket: VScript.VSocket) => SPOutputs | null;
};
export declare const lower: {
    readonly SP: (ref: SP | null) => string | null;
    readonly SPOutputs: (ref: SPOutputs | null) => string | null;
};
declare class SPOutputs {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get output(): _Video.Essence;
}
export declare class SP {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get source(): VScript.duplexKeyword<string | null, _Video.Essence | null, SP>;
    get outputs(): VScript.StronglyTypedTable<SPOutputs, VScript.TableRowView<SPOutputs>>;
}
export declare class SPAsNamedTableRow extends SP {
    private readonly raw_row;
    readonly enclosing_table: VScript.StronglyTypedNamedTable<SP>;
    readonly index: number;
    constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<SP>);
    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 pool(): VScript.StronglyTypedNamedTable<SP, VScript.NamedTableRowView<SP>>;
}
export {};
