import * as React from 'react';
import type { ZoomOptions } from '../diagram/canvasApi';
import type { LinkRouter, LinkTemplateResolver, ElementTemplate } from '../diagram/customization';
import { Element } from '../diagram/elements';
/**
 * Props for {@link Canvas} component.
 *
 * @see {@link Canvas}
 */
export interface CanvasProps {
    /**
     * Custom provider to render diagram elements.
     *
     * **Default** is to render elements with {@link StandardTemplate}.
     */
    elementTemplateResolver?: TypedElementResolver;
    /**
     * Custom provider to render diagram links of a specific type.
     *
     * **Default** is to render links with {@link DefaultLinkTemplate} which uses
     * {@link DefaultLinkPathTemplate} for the link itself.
     */
    linkTemplateResolver?: LinkTemplateResolver;
    /**
     * Custom provider to route (layout) diagram links on the diagram.
     *
     * **Default** is an {@link DefaultLinkRouter} instance.
     */
    linkRouter?: LinkRouter;
    /**
     * Whether to show scrollbars for the canvas viewport.
     *
     * @default false
     */
    showScrollbars?: boolean;
    /**
     * Options for the scale-affecting operations on the canvas.
     */
    zoomOptions?: ZoomOptions;
    /**
     * SVG image source to display as a watermark in the top-right
     * corner of the canvas.
     *
     * **Default** is no watermark.
     */
    watermarkSvg?: string;
    /**
     * Link URL to open on a click on the watermark image.
     *
     * Only applicable if {@link watermarkSvg} is set.
     *
     * **Default** is no link on the watermark.
     */
    watermarkUrl?: string;
    /**
     * Canvas widgets to display alongside the diagram cells.
     *
     * Non-widget child elements will be ignored with an console-emitted warning.
     */
    children?: React.ReactNode;
}
/**
 * Provides a custom component to render element on a diagram
 * based on the element itself and its type IRIs if the element is an entity.
 */
export type TypedElementResolver = (types: readonly string[], element: Element) => ElementTemplate | undefined;
/**
 * Component to display a canvas for the diagram with elements, links and additional widgets.
 *
 * @category Components
 */
export declare function Canvas(props: CanvasProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=canvas.d.ts.map