import { BoxTransform, InteractionBox, ResizeHandleId } from 'pptx-viewer-shared'; /** * Small geometry helpers the shared `element-interaction` module does not * cover: Shift-to-lock-aspect on corner resizes and arrow-key nudge steps. * Pure math only (mirrors the vanilla binding's `editor-geometry`); no Svelte * or DOM dependencies, so it is unit-testable in isolation. */ /** Arrow-key nudge step in element px (Shift multiplies to the large step). */ export declare const NUDGE_STEP = 1; export declare const NUDGE_STEP_LARGE = 10; /** True for the four corner handles (the ones Shift aspect-locks). */ export declare function isCornerHandle(handle: ResizeHandleId): boolean; /** * Constrain a corner resize (already computed by the shared `applyResize`) to * the start box's aspect ratio: the axis with the larger relative change wins * and the other follows, keeping the anchored (opposite) corner fixed. Edge * handles are returned unchanged; aspect-locking a one-axis handle would * fight the drag direction. */ export declare function lockResizeAspect(resized: BoxTransform, start: InteractionBox, handle: ResizeHandleId, minSize?: number): BoxTransform; /** * Map an arrow key to a nudge delta in element px, or `null` for other keys. * `large` (Shift held) uses the 10px step. */ export declare function nudgeDelta(key: string, large: boolean): { dx: number; dy: number; } | null; //# sourceMappingURL=editor-geometry.d.ts.map