import { ModuleWithProviders, NgZone, Provider } from '@angular/core';
import { BackendFactory, DragDropManager } from 'dnd-core';
import * as i0 from "@angular/core";
import * as i1 from "./dnd-directives";
/** @ignore */
export declare function unpackBackendForEs5Users(backendOrModule: any): any;
/** @ignore */
export declare function managerFactory(backendFactory: BackendFactory, ngZone: NgZone, context: unknown, backendOptions?: unknown, debugMode?: boolean): DragDropManager;
/** @ignore */
export declare function getBackend(manager: DragDropManager): import("dnd-core").Backend;
/** @ignore */
export declare function getGlobalContext(): any;
/**
 * Used for providing backends to {@link DndModule#forRoot}.
 * You can configure your backend with `options`.
 */
export interface BackendInput {
    /** A plain backend, for example the HTML5Backend. */
    backend: BackendFactory;
    /**
     * Any configuration your backend accepts. Use this with the TouchBackend or the MultiBackend,
     * for example.
     */
    options?: any;
    /**
     * Whether dnd-core should enable debugging, which lets you see dnd-core actions
     * in the Redux extension for Chrome.
     */
    debug?: boolean;
}
export declare class DndModule {
    static forRoot(backendInput: BackendInput): ModuleWithProviders<DndModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DndModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DndModule, never, [typeof i1.DragSourceDirective, typeof i1.DropTargetDirective, typeof i1.DragPreviewDirective], [typeof i1.DragSourceDirective, typeof i1.DropTargetDirective, typeof i1.DragPreviewDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DndModule>;
}
export declare function provideDnd(backendInput: BackendInput): Provider[];
