/// <reference types="react" />
import { Box } from '../atoms';
declare namespace dragEffect {
    type Entity = {
        type: '' | 'parent' | 'child';
        prevUID: string;
        parentUID: string;
        childUID: string;
    } | null;
}
declare const dragEffect: {
    Start: (type: string, opt: {
        startEvent: React.PointerEvent;
        dragElement: HTMLElement;
        originId?: string;
        horizontal?: boolean;
        vertical?: boolean;
        autoScroll?: boolean;
    }, callback: (p: {
        idx: number;
        id: string | void;
        groupId: string;
        end: boolean;
        onDropArea: boolean;
    }) => void) => void;
    AutoScroll: (event: MouseEvent | TouchEvent) => void;
    styles: (cls: string) => string;
    DropArea: <E extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = <T extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = "div">(p: Box.Input<T>) => import("react/jsx-runtime").JSX.Element | null>(p: {
        dragInfo: {
            type: string;
            id?: string;
            idx?: number;
            group?: string;
            activeOn?: 'landing' | 'lastLanding';
            /**
             * default bottom
             */
            marker?: 'outline' | 'top' | 'bottom' | 'left' | 'right' | false;
            /**
             * default false
             */
            disabled?: boolean;
        };
        className?: string;
        children?: React.ReactNode;
        jsxElement?: E;
    } & (E extends typeof Box ? Box.DefaultInput : Omit<React.ComponentPropsWithoutRef<E>, 'jsxElement'>)) => import("react/jsx-runtime").JSX.Element;
    DropSign: <E_1 extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = <T extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = "div">(p: Box.Input<T>) => import("react/jsx-runtime").JSX.Element | null>(p: {
        dragInfo: {
            type: string;
            id?: string;
            /**
             * default landing
             */
            activeOn?: 'always' | 'landing' | 'lastLanding' | 'dragging';
        };
        className?: string | undefined;
        children?: React.ReactNode;
        jsxElement?: E_1 | undefined;
    } & (E_1 extends <T extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = "div">(p: Box.Input<T>) => import("react/jsx-runtime").JSX.Element | null ? Box.DefaultInput : Omit<React.PropsWithoutRef<React.ComponentProps<E_1>>, "jsxElement">)) => import("react/jsx-runtime").JSX.Element;
};
export { dragEffect };
