import { OnInit, Renderer2, EventEmitter, ViewContainerRef, ElementRef, AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
import { DiagramModel } from '../../models/diagram.model';
import { BehaviorSubject } from 'rxjs';
import { BaseAction } from '../../actions';
import { BaseModel } from '../../models/base.model';
export declare class NgxDiagramComponent implements OnInit, AfterViewInit, OnDestroy {
    private renderer;
    private cdRef;
    diagramModel: DiagramModel;
    allowCanvasZoon: boolean;
    allowCanvasTranslation: boolean;
    inverseZoom: boolean;
    allowLooseLinks: boolean;
    actionStartedFiring: EventEmitter<BaseAction>;
    actionStillFiring: EventEmitter<BaseAction>;
    actionStoppedFiring: EventEmitter<BaseAction>;
    nodesLayer: ViewContainerRef;
    linksLayer: ViewContainerRef;
    canvas: ElementRef;
    private nodes$;
    private links$;
    private action$;
    private nodesRendered$;
    private destroyed$;
    private mouseUpListener;
    private mouseMoveListener;
    constructor(renderer: Renderer2, cdRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    /**
     * fire the action registered and notify subscribers
     */
    fireAction(): void;
    /**
     * Unregister the action, post firing and notify subscribers
     */
    stopFiringAction(shouldSkipEvent?: boolean): void;
    /**
     * Register the new action, pre firing and notify subscribers
     */
    startFiringAction(action: BaseAction): void;
    selectAction(): BehaviorSubject<BaseAction>;
    shouldDrawSelectionBox(): boolean;
    getMouseElement(event: MouseEvent): {
        model: BaseModel;
        element: Element;
    };
    onMouseUp: (event: MouseEvent) => void;
    onMouseMove: (event: MouseEvent) => void;
    onMouseDown(event: MouseEvent): void;
    onMouseWheel(event: WheelEvent): void;
}
