/// <reference types="lodash" />
import { Renderer, ElementRef } from '@angular/core';
import { ISubscription } from 'rxjs/Subscription';
import { Dictionary } from 'lodash';
import { FormBuilder, AbstractControl, FormGroup } from '@angular/forms';
import { DialogViewModel } from './view-models/dialog-view-model';
import { ParameterViewModel } from './view-models/parameter-view-model';
import { FieldViewModel } from './view-models/field-view-model';
import { IDraggableViewModel } from './view-models/idraggable-view-model';
export declare function safeUnsubscribe(sub: ISubscription): void;
export declare function focus(renderer: Renderer, element: ElementRef): boolean;
export declare function createForm(dialog: DialogViewModel, formBuilder: FormBuilder): {
    form: FormGroup;
    dialog: DialogViewModel;
    parms: Dictionary<ParameterViewModel>;
    sub: ISubscription;
};
export declare function accept(droppableVm: FieldViewModel, component: {
    canDrop: boolean;
}): (draggableVm: IDraggableViewModel) => boolean;
export declare function dropOn(draggableVm: IDraggableViewModel, droppable: FieldViewModel, component: {
    canDrop: boolean;
    control: AbstractControl;
}): void;
export declare function paste(event: KeyboardEvent, droppable: FieldViewModel, component: {
    control: AbstractControl;
}, get: () => IDraggableViewModel | null, clear: () => void): void;
