/** * Native-CSS motion compiler — emits `@property`, `@keyframes`, `@starting-style`, * state-keyed transitions, and an `@supports`-gated `animation-timeline` path. * * Consumes a `CssMotionPlan` from `interpretTransition` (#130 child 4). * * @module */ import { type CssMotionPlan } from '@czap/core'; /** Spring physics config — mirrors `Easing.spring` input. */ export interface MotionSpringConfig { readonly stiffness?: number; readonly damping?: number; readonly mass?: number; } /** Easing mode for emitted CSS timing functions. */ export type MotionEasing = 'linear' | 'ease' | 'spring'; /** Optional scroll/view timeline range for the `@supports`-gated path. */ export interface MotionViewTimeline { readonly range: readonly [string, string]; } /** Standalone scroll-root timeline for `animation-timeline: scroll()` (#126). */ export interface MotionScrollTimeline { readonly axis?: 'block' | 'inline' | 'x' | 'y'; readonly range: readonly [string, string]; } /** Input to {@link MotionCompiler.compile}. */ export interface MotionCompileInput { readonly plan: CssMotionPlan; readonly easing?: MotionEasing; readonly spring?: MotionSpringConfig; readonly viewTimeline?: MotionViewTimeline; readonly scrollTimeline?: MotionScrollTimeline; /** Stagger offset applied as animation/transition delay (#124). */ readonly delayMs?: number; } /** CSS artifacts emitted by {@link MotionCompiler.compile}. */ export interface MotionCompileResult { /** Full concatenated CSS sheet (sections joined by blank lines). */ readonly raw: string; readonly propertyRegistrations: string; readonly keyframes: string; readonly startingStyle: string; readonly transition: string; /** `@supports (animation-timeline: …)` block; empty when no view timeline. */ readonly scrollTimeline: string; } declare function compile(input: MotionCompileInput): MotionCompileResult; /** * Native-CSS motion compiler namespace. * * Compiles a `CssMotionPlan` into `@property` registrations, `@keyframes`, * `@starting-style`, state-keyed transitions, and an optional `@supports`-gated * scroll/view timeline path with spring easing via `Easing.springToLinearCSS`. */ export declare const MotionCompiler: { readonly compile: typeof compile; }; export {}; //# sourceMappingURL=motion.d.ts.map