import type { AllDragTypes } from '@atlaskit/pragmatic-drag-and-drop/types'; import { type Edge, type ElementAutoScrollArgs, type Spacing } from '../internal-types'; type VerticalEdges = ['top' | 'bottom']; type HorizontalEdges = ['left' | 'right']; type CrossAxisEdges = T extends VerticalEdges[number] ? HorizontalEdges : VerticalEdges; /** Specify outward reach of a scroll container */ export type HitboxSpacing = { [TEdge in keyof Spacing]: Spacing; }; /** The public type for specifying the outward reach of a scroll container */ export type ProvidedHitboxSpacing = { [TEdge in keyof Spacing as `for${Capitalize}Edge`]?: { [TKey in TEdge]: number; } & { [TKey in CrossAxisEdges[number]]?: number; }; }; export type UnsafeOverflowAutoScrollArgs = ElementAutoScrollArgs & { getOverflow: () => ProvidedHitboxSpacing; }; export {};