import type { ComputedRef, ExtractPropTypes,  PropType,  Ref } from 'vue';
export declare const SUPPORTED_DIRECTIONS: readonly ["top", "top-left", "left", "bottom", "bottom-left", "top-right", "right", "bottom-right"];
export declare const makeDraggableResizableProps: <Defaults extends {
    resizable?: unknown;
    resizableAnchors?: unknown;
    showResizableAnchor?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    resizable: unknown extends Defaults["resizable"] ? {
        type: BooleanConstructor;
        default: boolean;
    } : Omit<{
        type: BooleanConstructor;
        default: boolean;
    }, "default" | "type"> & {
        type: PropType<unknown extends Defaults["resizable"] ? boolean : boolean | Defaults["resizable"]>;
        default: unknown extends Defaults["resizable"] ? boolean : boolean | Defaults["resizable"];
    };
    resizableAnchors: unknown extends Defaults["resizableAnchors"] ? {
        type: PropType<("bottom" | "left" | "right" | "top" | "top-right" | "top-left" | "bottom-left" | "bottom-right")[]>;
        default: readonly ["top", "top-left", "left", "bottom", "bottom-left", "top-right", "right", "bottom-right"];
    } : Omit<{
        type: PropType<("bottom" | "left" | "right" | "top" | "top-right" | "top-left" | "bottom-left" | "bottom-right")[]>;
        default: readonly ["top", "top-left", "left", "bottom", "bottom-left", "top-right", "right", "bottom-right"];
    }, "default" | "type"> & {
        type: PropType<unknown extends Defaults["resizableAnchors"] ? ("bottom" | "left" | "right" | "top" | "top-right" | "top-left" | "bottom-left" | "bottom-right")[] : ("bottom" | "left" | "right" | "top" | "top-right" | "top-left" | "bottom-left" | "bottom-right")[] | Defaults["resizableAnchors"]>;
        default: unknown extends Defaults["resizableAnchors"] ? ("bottom" | "left" | "right" | "top" | "top-right" | "top-left" | "bottom-left" | "bottom-right")[] : ("bottom" | "left" | "right" | "top" | "top-right" | "top-left" | "bottom-left" | "bottom-right")[] | Defaults["resizableAnchors"];
    };
    showResizableAnchor: unknown extends Defaults["showResizableAnchor"] ? BooleanConstructor : {
        type: PropType<unknown extends Defaults["showResizableAnchor"] ? boolean : boolean | Defaults["showResizableAnchor"]>;
        default: unknown extends Defaults["showResizableAnchor"] ? boolean : boolean | Defaults["showResizableAnchor"];
    };
};
export declare function useDraggableResizable(props: ExtractPropTypes<ReturnType<typeof makeDraggableResizableProps>>, name?: string): {
    isResizing: Ref<boolean>;
    resizement: ComputedRef<{
        left: number;
        top: number;
        width: number;
        height: number;
    }>;
    genResizableAnchors: (anchorProps?: Record<string, any>, hide?: Ref<boolean>) => JSX.Element[];
};
//# sourceMappingURL=index.d.ts.map