import type { OrbState } from "../AIOrb.types";
/**
 * State-to-parameter configuration. Maps each OrbState to a set of numeric
 * target values that will be smoothly interpolated.
 */
export type StateParamConfig<T extends Record<string, number>> = Record<OrbState, T>;
/**
 * Generic ref-based interpolation hook for orb state-driven animation.
 *
 * - When `state` is defined, target values come from the config map.
 * - When `state` is undefined, target values come from the `propValues` fallback
 *   (backwards-compatible — orb behaves exactly as if no state was set).
 * - Returns a mutable `valuesRef` read inside animation loops, and a `tick(dt)`
 *   function that advances the interpolation by `dt` seconds.
 * - Zero React re-renders — all mutation is ref-based.
 */
export declare function useOrbState<T extends Record<string, number>>(state: OrbState | undefined, config: StateParamConfig<T>, propValues: T, damping?: number): {
    readonly valuesRef: import("react").RefObject<T>;
    readonly tick: (dt: number) => void;
};
