export class Renderer {
    constructor(element: any, nodes?: any[], edges?: any[], options?: {});
    WebGLRenderer: WebGLRenderer;
    /**
     * Registers an event listener
     * @param {string} name - Event name to listen for
     * @param {() => any} fn - Callback on event
     */
    on(name: string, fn: () => any): void;
    /**
     * Toggles the lasso selector on and off
     * @param {boolean} newStatus - If provided the lasso status will be set, otherwise toggled
     */
    toggleLasso(newStatus: boolean): void;
    /**
     * Selects or deselects a node.
     * @param {{id: string, renderer: { _private: { selected: boolean } }}} node
     * @param {boolean} value - Optional value to set. If ommitted current value will be toggled.
     */
    toggleSelectNode(node: {
        id: string;
        renderer: {
            _private: {
                selected: boolean;
            };
        };
    }, value?: boolean): void;
    /**
     * Updates the nodes and edges in the renderer.
     * @param {import("../model/rendereroptions").INodeWithRendererOptions[]} nodes
     * @param {import("../model/rendereroptions").IEdgeWithRendererOptions[]} edges
     */
    updateNodesAndEdges(nodes: import("../model/rendereroptions").INodeWithRendererOptions[], edges: import("../model/rendereroptions").IEdgeWithRendererOptions[]): void;
    /**
     * Returns if the node is selected or not
     * @param {import("../model/ibasicnode").IBasicNode} - Node to check
     * @returns {boolean} - selected status
     */
    isNodeSelected(node: any): boolean;
    /**
     * Clears all node selections
     */
    clearAllNodeSelections(): void;
    /**
     * Sets the line type for edges
     * @param {"line" | "taxi" | "orthogonal" | "cubicbezier"} newType
     */
    setLineType(newType: "line" | "taxi" | "orthogonal" | "cubicbezier"): void;
    /**
     * scales and moves the view so that all nodes are included in the view
     * @param {number} duration - Time in milliseconds for the transition
     */
    zoomToFit(duration?: number): void;
    /**
     * Sets new coordinates and scale for the renderer's stage
     * @param {number} x
     * @param {number} y
     * @param {number} scale
     */
    setTransform(x: number, y: number, scale: number): void;
    /**
     * Takes coordinates from the viewport as input and returns the local (relative) coordinates
     * @param {number} x - Viewport X coordinate
     * @param {number} y - Viewport Y coordinate
     */
    viewportToLocalCoordinates(x: number, y: number): {
        x: any;
        y: any;
    };
    /**
     * Takes coordinates from the graph as input and returns the corresponding viewport coordinates
     * @param {number} x - Local X coordinate
     * @param {number} y - Local Y coordinate
     */
    localToViewportCoordinates(x: number, y: number): {
        x: any;
        y: any;
    };
    /**
     * disables and grays out nodes that match a given filter function.
     * Connected edges will also be disabled.
     * @param {import("../model/rendereroptions").INodeWithRendererOptions => boolean} fn - filter function for nodes
     */
    disableNodes(fn: any): void;
    /**
     * Clears all disabled statuses on nodes and edges
     */
    clearAllDisabledStatuses(): void;
    /**
     * Cleanup function when dismounting.
     */
    dismount(): void;
    /**
     * Main render function that updates the canvas.
     * This can be used to trigger manual updates.
     */
    render(): void;
}
import { WebGLRenderer } from "./renderer";
