import { Layout, FlowBlock, Measure } from '../../../../../../../layout-engine/contracts/src/index.js';
import { LayoutHit, Point, PositionHit, PageGeometryHelper } from '../../../../../../../layout-engine/layout-bridge/src/index.js';
/**
 * Full pointer-hit resolution: DOM-first with geometry fallback.
 *
 * 1. If DOM args provided, tries DOM-based mapping.
 * 2. If DOM mapping succeeds, enriches the position into a PositionHit.
 * 3. If DOM mapping fails, computes a page hint from the DOM and falls back
 *    to geometry-only hit testing.
 * 4. If no DOM args provided, runs pure geometry hit testing.
 */
export declare function resolvePointerPositionHit(options: {
    layout: Layout;
    blocks: FlowBlock[];
    measures: Measure[];
    containerPoint: Point;
    domContainer?: HTMLElement | null;
    clientX?: number;
    clientY?: number;
    geometryHelper?: PageGeometryHelper;
}): PositionHit | null;
/**
 * Editor-neutral pointer hit resolution (prep-002).
 *
 * Returns a `LayoutHit` whose `legacyPm` mirrors what
 * {@link resolvePointerPositionHit} would have produced for the same inputs.
 * Additive — v1 call sites continue to use `resolvePointerPositionHit`. This
 * entry point exists so a future editor-neutral consumer can adopt the
 * neutral substrate without forking the DOM-first orchestration that lives
 * in this module.
 *
 * The DOM-first branch reuses the same `clickToPositionDom` /
 * `findPageElement` helpers as the PM-shaped path, then enriches the
 * resulting position into a `LayoutHit` by routing through `hitTestNeutral`
 * with a `pageHint`. This keeps a single browser-coupled path inside the
 * editor.
 */
export declare function resolvePointerLayoutHit(options: {
    layout: Layout;
    blocks: FlowBlock[];
    measures: Measure[];
    containerPoint: Point;
    domContainer?: HTMLElement | null;
    clientX?: number;
    clientY?: number;
    geometryHelper?: PageGeometryHelper;
}): LayoutHit | null;
//# sourceMappingURL=PositionHitResolver.d.ts.map