import { MotionTreeNode } from "./context/MotionTree.js"; import { DeclarativeTransform } from "./util/declarative-transform.js"; export interface Snapshot { height: number; width: number; originPoints: { x: number; y: number; }; } export interface Transform { x: AxisTransform; y: AxisTransform; } export interface CSSTransform { scaleX: number; scaleY: number; translateX: number; translateY: number; } interface AxisTransform { scale: number; translate: number; } export interface AnimationCallback { (progress: number | typeof import("./util/animate")["CANCELLED"], cancel?: () => void): void; } export interface AnimateOptions { from: number; to: number; callback: AnimationCallback; steps: number; } interface AnimationProps { element: T; animId: string; time?: number; initialSnapshot?: Snapshot | DeclarativeTransform; children?: any; onlyInitial?: boolean; onlyAnimate?: OnlyAnimate; } export type DomElements = keyof JSX.IntrinsicElements; export type AnimateLayoutProps = Omit & AnimationProps; export interface AnimateDeltaProps { el: HTMLElement; translateDelta: Transform; time: number; nodeInstance: MotionTreeNode; treeScale: { x: number; y: number; }; parentDelta?: Transform; fps: number; onlyAnimate: OnlyAnimate; } export type OnlyAnimate = Partial>; export {};