import { T_el, T_fn_cb, T_opt, T_opt_base, T_sel } from "./ax";
type T_drag_arrow = {
    enable?: boolean,
    icon?: string,
    placement?: 'left' | 'right' | 'top' | 'bottom',
}
export interface T_drag<B = 1> extends T_opt {
    drops?: T_sel | T_el[];
    parent?: T_sel;
    mode?: 'copy' | 'cut',
    purpose?: 'sort' | 'embed' | 'auto',
    data?: T_obj,
    point?: { before?: string[], after?: string[] },
    arrow?: B extends 1 ? (T_drag_arrow | boolean) : T_drag_arrow;
    holder?: { from?: boolean, to?: boolean },
    gesture?: T_obj,
    delay?: number,
    duration?: number,
    b4Drop?:T_fn,
    onDropping?: (data?: T_obj) => any,
    onDropped?: (data?: T_obj) => any,
    onDragStart?: (data?: T_obj) => any,
    onDragMove?: (data?: T_obj) => any,
    onDragEnd?: (data?: T_obj) => any,
    onDragCancel?: (data?: T_obj) => any,
}
