/** * Copyright IBM Corp. 2026 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ import { type MotionSurfaceInput } from '@carbon/motion'; import type { TargetAndTransition, Transition } from 'motion/react'; interface ResolvedSurfaceBase { enabled: boolean; enterTransition: Transition; exitTransition: Transition; } export interface ResolvedRevealSurface extends ResolvedSurfaceBase { kind: 'reveal'; initial: TargetAndTransition; animate: TargetAndTransition; exit: TargetAndTransition; } export interface ResolvedSharedElementSurface extends ResolvedSurfaceBase { kind: 'shared-element'; origin?: 'trigger'; animate?: TargetAndTransition; exit?: TargetAndTransition; } export type ResolvedMotionSurface = ResolvedRevealSurface | ResolvedSharedElementSurface; /** * resolve Carbon motion surfaces to Motion-ready values * definitions stay in `@carbon/motion`; this hook only translates tokens * (duration/easing names) into the numeric forms `motion/react` consumes * * accepts a catalog name or an inline definition */ export declare function useMotionSurface(input: MotionSurfaceInput): ResolvedMotionSurface; export {};