import { MMLColor } from "../color"; import { AnimationType, AttributeAnimation } from "../elements/AttributeAnimation"; import { AttributeLerp } from "../elements/AttributeLerp"; import { MElement } from "../elements/MElement"; import { GraphicsAdapter } from "../graphics"; type AttributeTuple = T extends AnimationType.Number ? [ AnimationType.Number, AnimationTypeToValueType | null, (newValue: AnimationTypeToValueType | null) => void ] : T extends AnimationType.Degrees ? [ AnimationType.Degrees, AnimationTypeToValueType | null, (newValue: AnimationTypeToValueType | null) => void ] : [ AnimationType.Color, AnimationTypeToValueType | null, (newValue: AnimationTypeToValueType | null) => void ]; export type AttributeHandlerRecord = Record | AttributeTuple | AttributeTuple>; type AnimationTypeToValueType = T extends AnimationType.Number | AnimationType.Degrees ? number : MMLColor; /** * The AnimatedAttributeHelper is a utility class that manages the application of attribute animations to an element. * * It is used by an MElement that has animateable attributes and is responsible for applying the animations to the * element according to the precedence rules defined in the AttributeAnimation class, and falling back to the element's * attribute value if no animations are active. */ export declare class AnimatedAttributeHelper { private element; private handlers; private stateByAttribute; private allAnimations; private allLerps; private documentTimeTickListener; private hasTicked; constructor(element: MElement, handlers: AttributeHandlerRecord); addSideEffectChild(child: MElement): void; removeSideEffectChild(child: MElement): void; elementSetAttribute(key: string, newValue: AnimationTypeToValueType | null): void; getAttributesForAttributeValue(attr: string): Array; addLerp(lerp: AttributeLerp, attributeValue: string): void; removeLerp(lerp: AttributeLerp, attributeValue: string): void; addAnimation(animation: AttributeAnimation, key: string): void; removeAnimation(animation: AttributeAnimation, key: string): void; updateTime(documentTime: number): void; reset(): void; } export {}; //# sourceMappingURL=AnimatedAttributeHelper.d.ts.map