import type { ItemConfig } from '../config';
import type LayoutManager from '../LayoutManager';
import { DragListener } from '../utils';
/**
 * Allows for any DOM item to create a component on drag
 * start tobe dragged into the Layout
 *
 * @param element
 * @param itemConfig the configuration for the contentItem that will be created
 * @param layoutManager
 */
export default class DragSource {
    _element: JQuery<HTMLElement>;
    _itemConfig: ItemConfig | (() => ItemConfig);
    _layoutManager: LayoutManager;
    _dragListener: DragListener;
    constructor(element: JQuery<HTMLElement>, itemConfig: ItemConfig | (() => ItemConfig), layoutManager: LayoutManager);
    /**
     * Called initially and after every drag
     */
    _createDragListener(): DragListener;
    /**
     * Callback for the DragListener's dragStart event
     *
     * @param x the x position of the mouse on dragStart
     * @param y the x position of the mouse on dragStart
     */
    _onDragStart(x: number, y: number): void;
}
//# sourceMappingURL=DragSource.d.ts.map