import { Observable } from 'rxjs';
import { FhNode, FhUnion, FhLink, FhConfig, FhData } from '../models/models';
import { DataSet, Node, Edge } from 'vis-network/standalone';
export declare class FamilyHierarchyService {
    private currentEdges;
    private _Edges;
    get Edges(): Observable<DataSet<Edge>>;
    private currentNodes;
    private _Nodes;
    get Nodes(): Observable<DataSet<Node>>;
    private currentFhNodes;
    _fhNodes: Observable<FhNode[]>;
    setFhNodes(nodes: FhNode[]): void;
    get FhNodes(): Observable<FhNode[]>;
    private currentFhUnions;
    _fhUnions: Observable<FhUnion[]>;
    setFhUnions(unions: FhUnion[]): void;
    get FhUnions(): Observable<FhUnion[]>;
    private currentFhLinks;
    _fhLinks: Observable<FhLink[]>;
    setFhLinks(links: FhLink[]): void;
    get FhLinks(): Observable<FhLink[]>;
    private currentConfig;
    _config: Observable<FhConfig>;
    setConfig(config: FhConfig): void;
    get config(): Observable<FhConfig>;
    private init;
    _init: Observable<boolean>;
    private _clickNode;
    clickNode: Observable<any>;
    private _clickUnion;
    clickUnion: Observable<any>;
    private _clickLink;
    clickLink: Observable<any>;
    sendClickEvent(e: any, type?: string): void;
    constructor();
    initialize(data: FhData, config?: FhConfig): void;
    private mergeDeep;
    private generateNodes;
    private createNode;
    private createEdge;
    private generateEdges;
    private generateUnions;
    private createUnion;
    addNode(node: FhNode): void;
    addLink(link: FhLink): void;
    addUnion(union: FhUnion): void;
}
