/** * Iterates through an array calling a callback for each adjacent pair. * * Processes elements in pairs where: * * - First call: left is null, right is the first element * - Subsequent calls: left and right are adjacent elements. * * This pattern is particularly useful for comparing adjacent elements in * sorting validation, where each element needs to be compared with its * predecessor to ensure correct ordering. * * @example * * ```ts * // Common use case: checking sort order * const numbers = [1, 3, 2, 4] * const errors: string[] = [] * * pairwise(numbers, (left, right) => { * if (left !== null && left > right) { * errors.push(`${left} should come after ${right}`) * } * }) * // errors = ['3 should come after 2'] * ``` * * @template T - Type of array elements. * @param nodes - Array to iterate through. * @param callback - Function called for each pair (including null for first). */ export declare function pairwise( nodes: T[], callback: (left: null | T, right: T) => void, ): void