import { Easing } from 'popmotion'; import { AnimationRef } from './animation-core.js'; import { AnimationPlan, AnimationRoute, ProjectionTreeAnimationEngine, } from './animation-engines.js'; import { Layout } from './layout.js'; import { MeasuredProjectionNode, ProjectionNode } from './projection-node.js'; import { ProjectionNodeSnapper, ProjectionNodeSnapshot, ProjectionNodeSnapshotMap, ProjectionTreeSnapshotOptions, } from '../../animation/src/snapshot.ts'; export interface AnimationPlanner { buildPlan(context: AnimationPlanningContext): Partial; } export interface AnimationPlanningContext { root: MeasuredProjectionNode & NodeProperties; node: MeasuredProjectionNode & NodeProperties; snapshot?: ProjectionNodeSnapshot & NodeProperties; snapshots: ProjectionNodeSnapshotMap; } export declare class LayoutAnimator { protected engine: ProjectionTreeAnimationEngine; protected easingParser: CssEasingParser; protected planners: AnimationPlanner[]; constructor( engine: ProjectionTreeAnimationEngine, easingParser: CssEasingParser, planners: AnimationPlanner[], ); animate(config: LayoutAnimationConfig): AnimationRef; protected initialize(root: ProjectionNode): void; protected getAnimationPlans( root: ProjectionNode, snapshots: ProjectionNodeSnapshotMap, estimation: boolean, ): Map; protected getLayoutRoute( context: AnimationPlanningContext, estimation: boolean, ): AnimationRoute; protected estimateLayoutRouteStart( root: MeasuredProjectionNode, node: MeasuredProjectionNode, snapshots: ProjectionNodeSnapshotMap, ): Layout | undefined; } export interface LayoutAnimationConfig { root: ProjectionNode; from: ProjectionNodeSnapshotMap; duration?: number; easing?: string | Easing; estimation?: boolean; } export declare class LayoutAnimationEntry { readonly node: ProjectionNode; readonly snapshots: ProjectionNodeSnapshotMap; protected animator: LayoutAnimator; protected snapper: ProjectionNodeSnapper; protected animationConfig: LayoutAnimationEntryAnimationConfig; constructor(config: LayoutAnimationEntryConfig); snapshot(options?: ProjectionTreeSnapshotOptions): void; animate(config?: LayoutAnimationEntryAnimationConfig): AnimationRef; } export interface LayoutAnimationEntryConfig { node: ProjectionNode; deps: [LayoutAnimator, ProjectionNodeSnapper]; storage?: ProjectionNodeSnapshotMap; animation?: LayoutAnimationEntryAnimationConfig; } export interface LayoutAnimationEntryAnimationConfig extends Omit {} export declare class CssEasingParser { parse(easing: string): Easing; } //# sourceMappingURL=animation.d.ts.map