import { InjectionKey, DirectiveBinding } from 'vue';
import { NgDirectiveBase } from './directive-base';
import { DragDropService } from './drag-drop.service';
import { IDragPreviewTemplate } from './drag-preview.component';
export interface IDragPreviewBinding {
    dragPreview?: IDragPreviewTemplate;
    dragPreviewData?: any;
    dragPreviewOptions?: {
        skipBatchPreview: boolean;
    };
    [props: string]: any;
    context: any;
}
export declare class DragPreviewDirective extends NgDirectiveBase<IDragPreviewBinding> {
    private dragDropService;
    static INSTANCE_KEY: string;
    static TOKEN: InjectionKey<DragPreviewDirective>;
    inputNameMap?: {
        [key: string]: string;
    } | undefined;
    dragPreviewTemplate: IDragPreviewTemplate;
    dragPreviewData: any;
    dragPreviewOptions: {
        skipBatchPreview: boolean;
    };
    previewRef: any;
    context: any;
    el: {
        nativeElement: any;
    };
    constructor(el: HTMLElement, dragDropService: DragDropService);
    createPreview(): void;
    destroyPreview(): void;
    getPreviewElement(): any;
    private getDragSyncDOMElements;
}
declare const _default: {
    mounted(el: HTMLElement & {
        [props: string]: any;
    }, binding: DirectiveBinding<IDragPreviewBinding>, vNode: any): void;
    updated(el: HTMLElement & {
        [props: string]: any;
    }, binding: DirectiveBinding<IDragPreviewBinding>): void;
};
export default _default;
