import { MetadataHistoryManager } from '@anglr/dynamic';
import { Selection, BaseType, Line } from 'd3';
import { Observable, Subject } from 'rxjs';
import { Coordinates, RelationsInput, RelationsNodeMetadata, RelationsOutput } from '../interfaces';
import { RelationsNodeManager } from '../services';
/**
 * Class that represents node relation path
 */
export declare class NodeRelationPath {
    protected parentGroup: Selection<BaseType, {}, null, undefined>;
    protected relationManager: RelationsNodeManager;
    protected history: MetadataHistoryManager<RelationsNodeMetadata[]>;
    start: Coordinates | null;
    end: Coordinates | null;
    /**
     * Subject used for emitting destroying event
     */
    protected destroyingSubject: Subject<void>;
    /**
     * Object that represents rendered path
     */
    protected path: Selection<SVGPathElement, {}, null, undefined>;
    /**
     * Line generator for generating lines
     */
    protected lineGenerator: Line<[number, number]>;
    /**
     * Output from which relation start
     */
    output: RelationsOutput | undefined | null;
    /**
     * Input where relation ends
     */
    input: RelationsInput | undefined | null;
    /**
     * Occurs when this relation is being destroyed
     */
    get destroying(): Observable<void>;
    constructor(parentGroup: Selection<BaseType, {}, null, undefined>, relationManager: RelationsNodeManager, history: MetadataHistoryManager<RelationsNodeMetadata[]>, start: Coordinates | null, end: Coordinates | null);
    /**
     * Method used for destroying this relation node
     */
    destroy(): void;
    /**
     * Highlights relation path and its input/output
     */
    highlight(): void;
    /**
     * Cancel hight for relation path
     */
    cancelHighlight(): void;
    /**
     * Explicitly runs invalidation of content (change detection)
     * @param propertyName - Name of property that has changed
     */
    invalidateVisuals(propertyName?: string): void;
}
//# sourceMappingURL=nodeRelationPath.d.ts.map