import { AfterViewInit, EventEmitter, OnDestroy, OnInit } from "@angular/core";
import { FDraggableBase } from './f-draggable-base';
import { FCreateConnectionEvent, FReassignConnectionEvent } from './f-connection';
import { FSelectionChangeEvent } from './f-selection-change-event';
import { FEventTrigger } from '../domain';
import { FCreateNodeEvent } from '../f-external-item';
import { BrowserService } from '@foblex/platform';
import { FDragStartedEvent, FNodeIntersectedWithConnections } from './domain';
import { FDropToGroupEvent } from './f-drop-to-group';
import { ICanRunOutsideAngular, IPointerEvent } from "../drag-toolkit";
import * as i0 from "@angular/core";
export declare class FDraggableDirective extends FDraggableBase implements OnInit, AfterViewInit, OnDestroy {
    private _fBrowser;
    private _elementReference;
    private _fResult;
    private _fMediator;
    private _fPlatform;
    disabled: boolean;
    get hostElement(): HTMLElement;
    fMultiSelectTrigger: FEventTrigger;
    fReassignConnectionTrigger: FEventTrigger;
    fCreateConnectionTrigger: FEventTrigger;
    fNodeResizeTrigger: FEventTrigger;
    fNodeRotateTrigger: FEventTrigger;
    fNodeMoveTrigger: FEventTrigger;
    fCanvasMoveTrigger: FEventTrigger;
    fExternalItemTrigger: FEventTrigger;
    fSelectionChange: EventEmitter<FSelectionChangeEvent>;
    fNodeIntersectedWithConnections: EventEmitter<FNodeIntersectedWithConnections>;
    fEmitOnNodeIntersect: boolean;
    fCreateNode: EventEmitter<FCreateNodeEvent<any>>;
    fReassignConnection: EventEmitter<FReassignConnectionEvent>;
    fCreateConnection: EventEmitter<FCreateConnectionEvent>;
    fDropToGroup: EventEmitter<FDropToGroupEvent>;
    vCellSize: number;
    hCellSize: number;
    fCellSizeWhileDragging: boolean;
    fDragStarted: EventEmitter<FDragStartedEvent>;
    fDragEnded: EventEmitter<void>;
    private _beforePlugins;
    private _afterPlugins;
    constructor(ngZone: ICanRunOutsideAngular, _fBrowser: BrowserService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    onPointerDown(event: IPointerEvent): boolean;
    protected prepareDragSequence(event: IPointerEvent): void;
    protected onSelect(event: Event): void;
    onPointerMove(event: IPointerEvent): void;
    onPointerUp(event: IPointerEvent): void;
    protected finalizeDragSequence(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FDraggableDirective, [{ optional: true; }, null]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FDraggableDirective, "f-flow[fDraggable]", ["fDraggable"], { "disabled": { "alias": "fDraggableDisabled"; "required": false; }; "fMultiSelectTrigger": { "alias": "fMultiSelectTrigger"; "required": false; }; "fReassignConnectionTrigger": { "alias": "fReassignConnectionTrigger"; "required": false; }; "fCreateConnectionTrigger": { "alias": "fCreateConnectionTrigger"; "required": false; }; "fNodeResizeTrigger": { "alias": "fNodeResizeTrigger"; "required": false; }; "fNodeRotateTrigger": { "alias": "fNodeRotateTrigger"; "required": false; }; "fNodeMoveTrigger": { "alias": "fNodeMoveTrigger"; "required": false; }; "fCanvasMoveTrigger": { "alias": "fCanvasMoveTrigger"; "required": false; }; "fExternalItemTrigger": { "alias": "fExternalItemTrigger"; "required": false; }; "fEmitOnNodeIntersect": { "alias": "fEmitOnNodeIntersect"; "required": false; }; "vCellSize": { "alias": "vCellSize"; "required": false; }; "hCellSize": { "alias": "hCellSize"; "required": false; }; "fCellSizeWhileDragging": { "alias": "fCellSizeWhileDragging"; "required": false; }; }, { "fSelectionChange": "fSelectionChange"; "fNodeIntersectedWithConnections": "fNodeIntersectedWithConnections"; "fCreateNode": "fCreateNode"; "fReassignConnection": "fReassignConnection"; "fCreateConnection": "fCreateConnection"; "fDropToGroup": "fDropToGroup"; "fDragStarted": "fDragStarted"; "fDragEnded": "fDragEnded"; }, ["_beforePlugins", "_afterPlugins"], never, false, never>;
    static ngAcceptInputType_disabled: unknown;
    static ngAcceptInputType_fEmitOnNodeIntersect: unknown;
    static ngAcceptInputType_vCellSize: unknown;
    static ngAcceptInputType_hCellSize: unknown;
    static ngAcceptInputType_fCellSizeWhileDragging: unknown;
}
