import { RenderContent, RenderPath, RenderSelection } from "../types/renderer";
import { UDraft } from "./draft";
import { UModel } from "./model";
import { UModule } from "./module";
import { UFeature } from "./feature";
export declare class URenderer {
    private _draft?;
    private _selection;
    private _contents;
    private _outputs;
    private _name;
    constructor(name: string);
    $name(): string;
    $draft(): UDraft;
    $selection(): {
        modules?: UModule[];
        features?: UFeature[];
        models?: UModel[];
        paths?: RenderPath[];
    };
    $paths(): RenderPath[];
    $contents(): RenderContent[];
    $outputs(): RenderContent[];
    $path(key: string): RenderPath | null;
    $content(key: string): RenderContent | null;
    $output(key: string): RenderContent | null;
    $modules(where?: (module: UModule) => boolean): UModule[];
    $features(where?: (module: UModule, feature: UFeature) => boolean): UFeature[];
    $models(where?: (module: UModule, model: UModel) => boolean): UModel[];
    $resolveRelativePath(from: string, to: string): string;
    init(draft: UDraft): Promise<this>;
    run(contents: RenderContent[]): Promise<this>;
    select(): Promise<RenderSelection>;
    render(): Promise<RenderContent[]>;
    clear(): void;
}
