import { EventEmitter } from '@angular/core';
import { FCreateConnectionEvent, FReassignConnectionEvent } from './f-connection';
import { FSelectionChangeEvent } from './f-selection-change-event';
import { FCreateNodeEvent } from '../f-external-item';
import { FDragStartedEvent, FNodeIntersectedWithConnections } from './domain';
import { FDropToGroupEvent } from './f-drop-to-group';
import { DragAndDropBase, ICanRunOutsideAngular } from "../drag-toolkit";
import * as i0 from "@angular/core";
export declare abstract class FDraggableBase extends DragAndDropBase {
    abstract fSelectionChange: EventEmitter<FSelectionChangeEvent>;
    abstract fNodeIntersectedWithConnections: EventEmitter<FNodeIntersectedWithConnections>;
    abstract fEmitOnNodeIntersect: boolean;
    abstract fCreateNode: EventEmitter<FCreateNodeEvent>;
    abstract fReassignConnection: EventEmitter<FReassignConnectionEvent>;
    abstract fCreateConnection: EventEmitter<FCreateConnectionEvent>;
    abstract fDropToGroup: EventEmitter<FDropToGroupEvent>;
    abstract vCellSize: number;
    abstract hCellSize: number;
    abstract fCellSizeWhileDragging: boolean;
    abstract fDragStarted: EventEmitter<FDragStartedEvent>;
    abstract fDragEnded: EventEmitter<void>;
    protected constructor(ngZone: ICanRunOutsideAngular | undefined);
    static ɵfac: i0.ɵɵFactoryDeclaration<FDraggableBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FDraggableBase, never, never, {}, {}, never, never, false, never>;
}
