import { IconEx } from "@hpcc-js/react";
import { React, SubgraphProps, VertexProps, EdgeProps } from "@hpcc-js/react";
import { GraphReactT } from "./graphReactT.ts";
import { GraphDataProps, HierarchyBase } from "../common/graphT.ts";
export type ISubgraph = SubgraphProps;
export type IVertex = VertexProps;
export type IEdge = EdgeProps;
export type IHierarchy = HierarchyBase<ISubgraph, IVertex>;
export type IGraphData2 = GraphDataProps<ISubgraph, IVertex, IEdge>;
export declare class GraphReact extends GraphReactT<ISubgraph, IVertex, IEdge> {
    constructor();
    protected _categories: IconEx[];
    categories(): IconEx[];
    categories(_: IconEx[]): this;
    protected _annotations: IconEx[];
    annotations(): IconEx[];
    annotations(_: IconEx[]): this;
    calcProps(_props: VertexProps): VertexProps;
    protected _reactVertexRenderer2: React.FunctionComponent<any>;
    vertexRenderer<T extends VertexProps>(): React.FunctionComponent<T>;
    vertexRenderer<T extends VertexProps>(_: React.FunctionComponent<T>): this;
    protected _reactCentroidRenderer: React.FunctionComponent<any>;
    centroidRenderer<T extends VertexProps>(): React.FunctionComponent<T>;
    centroidRenderer<T extends VertexProps>(_: React.FunctionComponent<T>): this;
    enter(domNode: any, element: any): void;
    updateCategories(): void;
    updateAnnotations(): void;
    update(domNode: any, element: any): void;
}
export interface GraphReact {
    vertexTextHeight(): number;
    vertexTextHeight(_: number): this;
    vertexTextPadding(): number;
    vertexTextPadding(_: number): this;
    vertexIconHeight(): number;
    vertexIconHeight(_: number): this;
    vertexIconPadding(): number;
    vertexIconPadding(_: number): this;
    vertexIconStrokeWidth(): number;
    vertexIconStrokeWidth(_: number): this;
    vertexIconFontFamily(): string;
    vertexIconFontFamily(_: string): this;
    vertexLabelFontFamily(): string;
    vertexLabelFontFamily(_: string): this;
    centroidColor(): string;
    centroidColor(_: string): this;
    centroidScale(): number;
    centroidScale(_: number): this;
    centroidTextHeight(): number;
    centroidTextHeight(_: number): this;
    centroidTextPadding(): number;
    centroidTextPadding(_: number): this;
    centroidIconHeight(): number;
    centroidIconHeight(_: number): this;
    centroidIconPadding(): number;
    centroidIconPadding(_: number): this;
    centroidIconStrokeWidth(): number;
    centroidIconStrokeWidth(_: number): this;
    centroidIconFontFamily(): string;
    centroidIconFontFamily(_: string): this;
    centroidLabelFontFamily(): string;
    centroidLabelFontFamily(_: string): this;
}
export declare const Graph2: typeof GraphReact;
