/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
import { TreeViewItemDragOverEvent, TreeViewItemDragEndEvent } from './events';
/**
* A class which provides an API for analyzing the `drag` events
* of the TreeView.
*
* {% meta height:400 %}
* {% embed_file drag/single/main.vue preview %}
* {% embed_file drag/single/main.js %}
* {% endmeta %}
*
* ### destinationMeta { itemHierarchicalIndex: string; treeViewGuid: string; }
* Returns an object which contains:
* * The `itemHierarchicalIndex` of the destination item (the item below the dragged item) and
* * The `guid` of the destination TreeView (the TreeView which renders the destination item).
*
* ### isDropAllowed boolean
* Returns `true` if dropping is allowed. Otherwise, returns `false`.
*/
declare class TreeViewDragAnalyzer {
private event;
private itemId;
private treeViewGuid;
private initialized;
private destDomNodeWithMeta;
private destItemId;
private destTreeViewGuid;
/**
* @param event - The event that will be analyzed.
*/
constructor(event: TreeViewItemDragOverEvent | TreeViewItemDragEndEvent);
/**
* The method which initializes the analyzer.
* Invoke the method before you call any other methods.
*
* @returns - The analyzer object of the `drag` event.
*/
init(): this;
/**
* Returns `true` if dropping is allowed. Otherwise, returns `false`.
*/
get isDropAllowed(): boolean;
/**
* Returns an object which contains:
* * The `itemHierarchicalIndex` of the destination item (the item below the dragged item) and
* * The `guid` of the destination TreeView (the TreeView which renders the destination item).
*/
get destinationMeta(): {
itemHierarchicalIndex: string;
treeViewGuid: string;
};
/**
* Returns the specific drop operation.
*
* @returns - The following values are returned:
* * `before`—Indicates that the dragged item is positioned at the beginning of the destination item.
* * `after`—Indicates that the dragged item is positioned at the end of the destination item.
* * `child`—Indicates that the dragged item is positioned in the middle of the destination item.
* * `undefined`—Indicates that dropping is not allowed.
*/
getDropOperation(): "child" | "before" | "after";
private setDestimationMeta;
}
export { TreeViewDragAnalyzer };