import { PropertyExt, Widget } from "@hpcc-js/common";
import { Vertex3Props, EdgeProps } from "@hpcc-js/react";
import { GraphReact } from "./graphReact.ts";
export type IVertex3 = Vertex3Props;
export declare function toJsonObj<T>(row: any, columns: any): T;
export declare class AnnotationColumn extends PropertyExt {
    protected _owner: DataGraph;
    owner(): DataGraph;
    owner(_: DataGraph): this;
    valid(): boolean;
}
export interface AnnotationColumn {
    columnID(): string;
    columnID(_: string): this;
    annotationID(): string;
    annotationID(_: string): this;
}
export declare class DataGraph extends GraphReact {
    constructor();
    clear(): void;
    indexOf(columns: readonly string[], column: string, defColumn?: string): number;
    private _prevSubgraphs;
    private _masterSubgraphs;
    private _masterSubgraphsMap;
    mergeSubgraphs(): void;
    private _prevVertices;
    private _masterVertices;
    private _masterVerticesMap;
    mergeVertices(): void;
    protected _prevEdges: readonly EdgeProps<IVertex3>[];
    protected _masterEdges: EdgeProps<IVertex3>[];
    private _masterEdgesMap;
    mergeEdges(): void;
    private _prevHierarchy;
    private _masterHierarchy;
    private _masterHierarchyMap;
    mergeHierarchy(): void;
    update(domNode: any, element: any): void;
    render(callback?: (w: Widget) => void): this;
}
export interface DataGraph {
    subgraphColumns(): string[];
    subgraphColumns(_: string[]): this;
    subgraphs(): Array<Array<string | number | boolean>>;
    subgraphs(_: Array<Array<string | number | boolean>>): this;
    subgraphIDColumn(): string;
    subgraphIDColumn(_: string): this;
    subgraphLabelColumn(): string;
    subgraphLabelColumn(_: string): this;
    vertexColumns(): string[];
    vertexColumns(_: string[]): this;
    vertices(): Array<Array<string | number | boolean>>;
    vertices(_: Array<Array<string | number | boolean>>): this;
    vertexCategoryColumn(): string;
    vertexCategoryColumn(_: string): this;
    vertexIDColumn(): string;
    vertexIDColumn(_: string): this;
    vertexLabelColumn(): string;
    vertexLabelColumn(_: string): this;
    vertexCentroidColumn(): string;
    vertexCentroidColumn(_: string): this;
    vertexImageUrl(): string;
    vertexImageUrl(_: string): this;
    vertexImageUrlColumn(): string;
    vertexImageUrlColumn(_: string): this;
    vertexFAChar(): string;
    vertexFAChar(_: string): this;
    vertexFACharColumn(): string;
    vertexFACharColumn(_: string): this;
    vertexTooltipColumn(): string;
    vertexTooltipColumn(_: string): this;
    vertexAnnotationColumns(): AnnotationColumn[];
    vertexAnnotationColumns(_: AnnotationColumn[]): this;
    vertexExpansionFACharColumn(): string;
    vertexExpansionFACharColumn(_: string): this;
    edgeColumns(): string[];
    edgeColumns(_: string[]): this;
    edges(): Array<Array<string | number | boolean>>;
    edges(_: Array<Array<string | number | boolean>>): this;
    edgeIDColumn(): string;
    edgeIDColumn(_: string): this;
    edgeLabelColumn(): string;
    edgeLabelColumn(_: string): this;
    edgeSourceColumn(): string;
    edgeSourceColumn(_: string): this;
    edgeTargetColumn(): string;
    edgeTargetColumn(_: string): this;
    edgeWeightColumn(): string;
    edgeWeightColumn(_: string): this;
    edgeColorColumn(): string;
    edgeColorColumn(_: string): this;
    hierarchyColumns(): string[];
    hierarchyColumns(_: string[]): this;
    hierarchy(): Array<Array<string | number | boolean>>;
    hierarchy(_: Array<Array<string | number | boolean>>): this;
    hierarchyParentIDColumn(): string;
    hierarchyParentIDColumn(_: string): this;
    hierarchyChildIDColumn(): string;
    hierarchyChildIDColumn(_: string): this;
}
