import { AggregationAnimationRef, AnimationConfig, AnimationRef, AnimationResult } from './animation-core.js'; import { Layout } from './layout.js'; import { ProjectionNode } from './projection-node.js'; export interface AnimationHandler { handleFrame(node: ProjectionNode, progress: number, plan: AnimationPlan): void; } export declare class ProjectionNodeAnimationEngine { protected handlers: AnimationHandler[]; protected records: WeakMap; constructor(handlers: AnimationHandler[]); animate(node: ProjectionNode, config: ProjectionNodeAnimationConfig): ProjectionNodeAnimationRef; protected handleFrame(node: ProjectionNode, plan: AnimationPlan, progress: number): void; protected calcFrameLayout(route: AnimationRoute, progress: number, config: { position: boolean; size: boolean; }): Layout; } export declare class ProjectionNodeAnimationRef extends AnimationRef { node: ProjectionNode; constructor(node: ProjectionNode, promise: Promise, stopper: () => void); } export interface ProjectionNodeAnimationConfig extends AnimationConfig { plan: AnimationPlan; } export declare class ProjectionTreeAnimationEngine { protected engine: ProjectionNodeAnimationEngine; protected records: WeakMap; constructor(engine: ProjectionNodeAnimationEngine); animate(root: ProjectionNode, config: ProjectionTreeAnimationConfig): ProjectionTreeAnimationRef; } export declare class ProjectionTreeAnimationRef extends AggregationAnimationRef { root: ProjectionNode; constructor(root: ProjectionNode, refs: ProjectionNodeAnimationRef[]); } export interface ProjectionTreeAnimationConfig extends AnimationConfig { plans: Map; } export interface AnimationPlan { layout: AnimationRoute; [name: string]: AnimationRoute; } export interface AnimationRoute { from: Value; to: Value; } //# sourceMappingURL=animation-engines.d.ts.map