import { PipelineCursor } from "../types/renderer";
import { UModule } from "./module";
import { URenderer } from "./renderer";
import { UAttribute } from "./attribute";
import { JsonDraft } from "../types/json";
export declare class UDraft {
    private _modules;
    private _attributes;
    private _workingDir?;
    private _renderers;
    constructor();
    $modules(): UModule[];
    $workingDir(): string;
    $renderers(): URenderer[];
    $renderer<Type = URenderer>(name: string): Type | null;
    $requireRenderer<Type extends URenderer>(fromRendererClass: URenderer, name: string): Type;
    $attributes(): UAttribute<any>[];
    attributes(attributes: UAttribute<any>[]): this;
    removeAttributes(attributes: UAttribute<any>[]): this;
    static load(filePath: string): UDraft | null;
    static yaml(yamlDraft: string): UDraft | null;
    static json(jsonDraft: string): UDraft | null;
    static _parse(rawDraft: any): UDraft;
    extends(seed: UDraft): this;
    modules(modules: UModule[]): this;
    remove(modules: UModule[]): this;
    private _goTo;
    private _clear;
    begin(workingDir: string): PipelineCursor;
    private _pipeline;
    render(renderer: URenderer): Promise<this>;
    $json(): JsonDraft;
}
