import React from "react";
import { TBlock } from "../components/canvas/blocks/Block";
import { Graph } from "../graph";
import "./Block.css";
export type TGraphBlockProps<T extends TBlock> = {
    /**
     * Graph instance
     */
    graph: Graph;
    /**
     * Block instance
     */
    block: T;
    /**
     * Class name for wrapper div
     * * The difference between the "containerClassName" and "className" props:
     * - containerClassName is applied to the container div
     * - className is applied to the wrapper div
     * ```jsx
     * // container for position and size
     * <div className={`graph-block-container ${containerClassName}`}>
     *   // wrapper for block content
     *   <div className={`graph-block-wrapper ${className}`}>
     *     {children}
     *   </div>
     * </div>
     * ```
     */
    className?: string;
    /**
     * Class name for container div
     * * The difference between the "containerClassName" and "className" props:
     * - containerClassName is applied to the container div
     * - className is applied to the wrapper div
     * ```jsx
     * // container for position and size
     * <div className={`graph-block-container ${containerClassName}`}>
     *   // wrapper for block content
     *   <div className={`graph-block-wrapper ${className}`}>
     *     {children}
     *   </div>
     * </div>
     * ```
     */
    containerClassName?: string;
    /**
     * Flag to hide canvas block automatically when react will render the block.
     * If you want to manage canvas block visibility manually, you can set `autoHideCanvas` to `false`, and pass `canvasVisible` prop to control it.
     */
    autoHideCanvas?: boolean;
    /**
     * Flag to manage visibility of canvas block.
     * If you want to manage visibility of canvas block manually, you can set `autoHideCanvas` to `false`, and pass `canvasVisible` prop to control it.
     */
    canvasVisible?: boolean;
    children: React.ReactNode;
};
export declare const GraphBlock: <T extends TBlock>(props: TGraphBlockProps<T> & {
    ref?: React.Ref<HTMLDivElement>;
}) => React.ReactElement | null;
