import type { Input } from '@atlaskit/pragmatic-drag-and-drop/types'; import type { Availability, Axis, Operation } from './list-item'; /** * Calculate the `Instruction` for a drag operation based on the users input * and the available operations. * * Notes: * * - `attachInstruction` can attach an `Instruction | null`. `null` will be attached if all `operations` provided are `"not-available"`. * - Use `extractInstruction` to obtain the `Instruction | null` * * @example * * ```ts * dropTargetForElements({ * element: myElement, * getData({input, element}) { * // The data I want to attach to the drop target * const myData = {type: 'card', cardId: 'A'}; * * // Add an instruction to myData * return attachInstruction(myData, { * input, * element, * operations: { * 'reorder-before': 'available', * 'reorder-after': 'available', * combine: 'available', * } * }); * } * }); * ``` */ export declare function attachInstruction(userData: Record, { operations, element, input, axis: axisValue, }: { /** * All operations are optional, and their default value is `"not-available"`. * The hitbox will automatically adjust to account for which options are `"available"` or `"blocked"`. */ operations: { [TKey in Operation]?: Availability; }; element: Element; input: Input; axis?: Axis; }): Record;