import type { Component } from "../pageModel";
export type ReorderTarget = {
    /**
     * Layout-excluded index to pass as `MoveComponentOperation.placeholderIndex`.
     * Uses the same gap convention as drag-and-drop (computed over the list that
     * still includes the moving component), via {@link layoutAwareIndex}.
     */
    targetAdjustedIndex: number;
    /** 1-based position among real (non-layout) siblings after the move. */
    newPosition: number;
    /** Total real (non-layout) siblings in the placeholder. */
    totalReal: number;
};
/**
 * Compute where a component lands when nudged one real sibling up or down
 * within its placeholder. Returns null when the move is not possible (component
 * not found, is a layout component, or already at the boundary). Layout
 * components are skipped so keyboard reordering agrees with drag-and-drop.
 */
export declare function computeReorderTarget(components: Component[], componentId: string, direction: "up" | "down"): ReorderTarget | null;
