import { AnimationTimer } from "parsegraph-timing";
import { GraphPainter } from "parsegraph-graphpainter";
import { ImageProjector } from "parsegraph-projector";
import { DirectionNode } from "parsegraph-direction";
import { PaintedNode } from "parsegraph-artist";
export type Job = {
    creatorFunc: () => DirectionNode;
    creatorFuncThisArg: object;
    callbackFunc: (img: HTMLElement) => void;
    callbackFuncThisArg: object;
    root: DirectionNode;
    rootless: boolean;
    builders: [(timeLeft: number) => boolean, object][];
};
export default class ImageBuilder {
    _renderTimer: AnimationTimer;
    _projector: ImageProjector;
    _painter: GraphPainter;
    _jobs: Job[];
    _width: number;
    _height: number;
    constructor(width: number, height: number);
    scheduleUpdate(): void;
    projector(): ImageProjector;
    painter(): GraphPainter;
    createImage(creatorFunc: Function, creatorFuncThisArg?: object, callbackFunc?: (img: HTMLElement) => void, callbackFuncThisArg?: object): void;
    queueJob(builderFunc: (timeLeft: number) => boolean, builderFuncThisArg?: any): void;
    cycle(): boolean;
    project(root: PaintedNode): void;
    newImage(): void;
}
//# sourceMappingURL=ImageBuilder.d.ts.map