/** Angular */
import * as ng from "@angular/core";
/** Core */
import { CoreComponent } from "cmf.core/src/core";
/**
* @whatItDoes
* Used to display a list of items with drag and drop feature to allow the user to reorder them
*
* @howToUse
* This component is used with the inputs and outputs mentioned below.
*
* ### Inputs
* * `any[]` : **items** - Array of items;
* * `boolean`: **dragAndDropEnabled** - If drag and drop is enabled
*
* ### Outputs
* * `any[]` : **onItemsReordered** - When items are reordered;
*
* ## Example
*
* ```html
*
* ```
*/
export declare class DragAndDropList extends CoreComponent implements ng.AfterViewInit {
private elementRef;
/**
* List item template
*/
_itemTemplate: ng.TemplateRef;
/**
* List items element references
*/
private listItems;
/**
* Drop target height
*/
_dropTargetHeight: number;
/**
* Drag over index
*/
_dragOverIndex: number;
/**
* Dragged item index
*/
_draggedItemIndex: number;
/**
* Array of items
*/
items: any[];
/**
* If Drag and Drop is enabled
*/
dragAndDropEnabled: boolean;
/**
* Emit items array when items are reordered
*
* @property {ng.EventEmitter} onItemsReordered event
*/
onItemsReordered: ng.EventEmitter;
/**
* Constructor
*/
constructor(elementRef: ng.ElementRef);
/**
* Get height for the drop target element
*/
private getDropTargetHeight;
/**
* When user starts dragging an item
*/
dragItemStart(event: any, index: number): void;
/**
* When user starts is dragging an item and releases the mouse
* @param event the drag event
*/
dragItemEnd(event: DragEvent): void;
/**
* When user starts is dragging an item over a drop target element
* @param event the drag event
*/
dragOverDropTarget(event: DragEvent): void;
/**
* When user starts is dragging an item and enters the boundaries of a drop target element
* @param event the drag event
* @param index the index of the drop target
*/
dragEnterDropTarget(event: DragEvent, index: number): void;
/**
* When user drops the dragged item on a drop target
* @param event the drag event
*/
dropItem(event: DragEvent): void;
/**
* After component view is initialized
*/
ngAfterViewInit(): void;
}
export declare class DragAndDropListModule {
}