import { PropertyExt } from "@hpcc-js/common";
import { Graph, IGraphData } from "./Graph.ts";
import { IAnnotation } from "./Vertex.ts";
interface IAnnotationIndexes {
    iconCol: number;
    iconFillCol: number;
    tooltipCol: number;
    shapeStrokeCol: number;
    shapeFillCol: number;
}
export declare class Annotation extends PropertyExt {
    protected _owner: AdjacencyGraph;
    owner(): AdjacencyGraph;
    owner(_: AdjacencyGraph): this;
    valid(): boolean;
    indexes(): IAnnotationIndexes;
    mapper(): (row: any) => IAnnotation;
}
export interface Annotation {
    iconColumn(): string;
    iconColumn(_: string): this;
    iconFillDefault(): string;
    iconFillDefault(_: string): this;
    iconFillColumn(): string;
    iconFillColumn(_: string): this;
    tooltipColumn(): string;
    tooltipColumn(_: string): this;
    shapeStrokeDefault(): string;
    shapeStrokeDefault(_: string): this;
    shapeStrokeColumn(): string;
    shapeStrokeColumn(_: string): this;
    shapeFillDefault(): string;
    shapeFillDefault(_: string): this;
    shapeFillColumn(): string;
    shapeFillColumn(_: string): this;
}
export declare class AdjacencyGraph extends Graph {
    private _vertexMap;
    private _edgeMap;
    private _prevAdjacencyDataHash;
    private _merge;
    private _adjacencyData;
    constructor();
    linksColumns(): string[];
    validAnnotations(): Annotation[];
    updateData(): void;
    data(): IGraphData;
    data(_: IGraphData, merge?: boolean): this;
    update(domNode: any, element: any): void;
    click(row: any, col: any, sel: any): void;
}
export interface AdjacencyGraph {
    uidColumn(): string;
    uidColumn(_: string): this;
    labelColumn(): string;
    labelColumn(_: string): this;
    iconColumn(): string;
    iconColumn(_: string): this;
    linksColumn(): string;
    linksColumn(_: string): this;
    linkUidColumn(): string;
    linkUidColumn(_: string): this;
    linkLabelColumn(): string;
    linkLabelColumn(_: string): this;
    annotations(): Annotation[];
    annotations(_: Annotation[]): this;
}
export {};
