hunk.code_window: /** Called when a `SpringValue` changes */
   export type OnChange<T = unknown> = (value: T, source: SpringValue<T>) => void
   /** Called once the animation comes to a halt */
   export type OnRest<T = unknown> = (result: AnimationResult<T>) => void
   /** The object passed to `onRest` props */
  
hunk.labels: keep keep keep keep replace keep keep
hunk.after_edit: export type OnRest<T = unknown> = (result: Readonly<AnimationResult<T>>) => void
  
hunk.file_path: packages/core/src/types/animated.ts
hunk.type: replace
file: import { test, assert, _ } from 'spec.ts';
  import { interpolate, SpringValue } from '../..';
  
  /** Return the arguments as-is */
  const args = <T extends ReadonlyArray<any>>(...args: T) => args;
  
  test('with one SpringValue', () => {
    // Basic value
    const out1 = interpolate(_ as SpringValue<number>, args);
    assert(out1, _ as SpringValue<[number]>);
  
    // Array value
    const out2 = interpolate(_ as SpringValue<[number, number]>, args);
    assert(out2, _ as SpringValue<[number, number]>);
  });
  
  test('with an array of SpringValues', () => {
    // 1 value
    const out1 = interpolate(_ as [SpringValue<number>], args);
    assert(out1, _ as SpringValue<[number]>);
  
    // 2 values
    const out2 = interpolate(
      _ as [SpringValue<number>, SpringValue<string>],
      args
    );
    assert(out2, _ as SpringValue<[number, string]>);
  
    // Infinite values
    const out3 = interpolate(_ as SpringValue<number>[], args);
    assert(out3, _ as SpringValue<number[]>);
  });
  