import type { Component } from "../pageModel";
import type { PageViewContext } from "../page-viewer/pageViewContext";
type Options = {
    component: Component;
    pageViewContext?: PageViewContext;
    /** Whether the grip may start a drag (component movable, not layout-locked). */
    enabled: boolean;
};
/**
 * Parent-DOM drag source for a component grip (the frame-menu header). It owns
 * the pointer via `setPointerCapture` and forwards a "client"-space gesture
 * stream to {@link DragInsertionOverlay} - the very same orchestration the
 * in-iframe whole-component grab uses. The grip therefore gets the continuous
 * insertion line, the cursor-following chip/snapshot, edge auto-scroll, and the
 * shared `droppedInPlaceholder` commit path instead of janky native HTML5 DnD.
 *
 * Below the 6px threshold nothing is dispatched, so a plain click on the grip
 * (or a nested button such as "select parent") still behaves normally.
 */
export declare function useComponentDragHandle({ component, pageViewContext, enabled, }: Options): {
    onPointerDown: (e: React.PointerEvent<HTMLElement>) => void;
};
export {};
