/// <reference types="react" />
import { Able } from "./types";
export declare function makeMoveable<T = {}>(ables: Array<Able<T>>): {
    new (props: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>): {
        moveable: import("./MoveableManager").default<{}> | import("./MoveableGroup").default;
        render(): JSX.Element;
        setState(state: any, callback?: (() => any) | undefined): any;
        context: any;
        forceUpdate(callback?: (() => void) | undefined): void;
        readonly props: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T> & Readonly<{
            children?: import("react").ReactNode;
        }>;
        state: Readonly<{}>;
        refs: {
            [key: string]: import("react").ReactInstance;
        };
        componentDidMount?(): void;
        shouldComponentUpdate?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextState: Readonly<{}>, nextContext: any): boolean;
        componentWillUnmount?(): void;
        componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
        getSnapshotBeforeUpdate?(prevProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, prevState: Readonly<{}>): any;
        componentDidUpdate?(prevProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, prevState: Readonly<{}>, snapshot?: any): void;
        componentWillMount?(): void;
        UNSAFE_componentWillMount?(): void;
        componentWillReceiveProps?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextContext: any): void;
        UNSAFE_componentWillReceiveProps?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextContext: any): void;
        componentWillUpdate?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextState: Readonly<{}>, nextContext: any): void;
        UNSAFE_componentWillUpdate?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextState: Readonly<{}>, nextContext: any): void;
        getRect(): import("./types").RectInfo;
        isMoveableElement(target: Element): boolean;
        updateRect(type?: "" | "Start" | "End" | undefined, isTarget?: boolean | undefined, isSetState?: boolean | undefined): void;
        updateTarget(): void;
        request(ableName: string, params?: import("@daybrush/utils").IObject<any> | undefined, isInstant?: boolean | undefined): import("./types").Requester;
        destroy(): void;
        dragStart(e: MouseEvent | TouchEvent): void;
        isInside(clientX: number, clientY: number): boolean;
        isDragging(): boolean;
        hitTest(el: Element | import("./types").HitRect): number;
    };
    new (props: import("./types").MoveableDefaultProps & import("./types").GroupableProps & T, context?: any): {
        moveable: import("./MoveableManager").default<{}> | import("./MoveableGroup").default;
        render(): JSX.Element;
        setState(state: any, callback?: (() => any) | undefined): any;
        context: any;
        forceUpdate(callback?: (() => void) | undefined): void;
        readonly props: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T> & Readonly<{
            children?: import("react").ReactNode;
        }>;
        state: Readonly<{}>;
        refs: {
            [key: string]: import("react").ReactInstance;
        };
        componentDidMount?(): void;
        shouldComponentUpdate?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextState: Readonly<{}>, nextContext: any): boolean;
        componentWillUnmount?(): void;
        componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
        getSnapshotBeforeUpdate?(prevProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, prevState: Readonly<{}>): any;
        componentDidUpdate?(prevProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, prevState: Readonly<{}>, snapshot?: any): void;
        componentWillMount?(): void;
        UNSAFE_componentWillMount?(): void;
        componentWillReceiveProps?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextContext: any): void;
        UNSAFE_componentWillReceiveProps?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextContext: any): void;
        componentWillUpdate?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextState: Readonly<{}>, nextContext: any): void;
        UNSAFE_componentWillUpdate?(nextProps: Readonly<import("./types").MoveableDefaultProps & import("./types").GroupableProps & T>, nextState: Readonly<{}>, nextContext: any): void;
        getRect(): import("./types").RectInfo;
        isMoveableElement(target: Element): boolean;
        updateRect(type?: "" | "Start" | "End" | undefined, isTarget?: boolean | undefined, isSetState?: boolean | undefined): void;
        updateTarget(): void;
        request(ableName: string, params?: import("@daybrush/utils").IObject<any> | undefined, isInstant?: boolean | undefined): import("./types").Requester;
        destroy(): void;
        dragStart(e: MouseEvent | TouchEvent): void;
        isInside(clientX: number, clientY: number): boolean;
        isDragging(): boolean;
        hitTest(el: Element | import("./types").HitRect): number;
    };
    defaultAbles: Able<T, import("@daybrush/utils").IObject<any>>[];
    defaultStyled: any;
    makeStyled(): void;
    getTotalAbles(): Able<import("@daybrush/utils").IObject<any>, import("@daybrush/utils").IObject<any>>[];
    contextType?: import("react").Context<any> | undefined;
};
