///
import type { Worker as NodeJSWorker } from "worker_threads";
import type { RenderOptions, GraphvizJSONOutput } from "./types";
declare type VizConstructorOptionsWorkerURL = {
workerURL: string | URL;
};
declare type VizConstructorOptionsWorker = {
worker: Worker | NodeJSWorker;
};
export declare type VizConstructorOptions = VizConstructorOptionsWorkerURL | VizConstructorOptionsWorker;
/**
* The Viz class provides an interface between the rendering worker(s) and the
* "main" thread.
*/
declare class Viz {
private _wrapper;
/**
* Constructs a new Viz instance.
*
* If the `workerURL` option is given, its value must be the URL of one of the
* rendering script files included in the distribution (E.G.:
* `render.browser.js`).
* If the worker option is given, its value must be a `Worker` object
* constructed with the URL or path of one of the rendering script files
* included in the distribution (E.G.: `render.node.js`).
*
* @param options An object containing option properties on the worker to use.
* @throws {Error} if no options are given.
*/
constructor(options: VizConstructorOptions);
/**
* Renders a DOT graph to the specified format.
* @param src DOT representation of the graph to render.
* @param options Options for the rendering engine.
* @returns Raw output of Graphviz as a string.
*/
renderString(src: string, { format, engine, files, images, yInvert, nop, }?: RenderOptions): Promise;
/**
* Renders the graph as a JSON object.
* @param src DOT representation of the graph to render
* @param options Options for the rendering engine. `format` is ignored,
* unless it is json or json0.
* @returns Parsed JSON object from Graphviz.
* @see https://graphviz.gitlab.io/_pages/doc/info/output.html#d:json
*/
renderJSONObject(src: string, options?: RenderOptions): Promise;
/**
* Terminates the worker, clearing all on-going work.
*/
terminateWorker(): Promise | void;
}
export default Viz;
export type { RenderOptions, GraphvizJSONOutput };