import {Keyframe} from "../Keyframe.js";
import ObservedValue from "../../../../core/model/ObservedValue.js";
import List from "../../../../core/collection/list/List.js";
import ObservedBoolean from "../../../../core/model/ObservedBoolean.js";

export class KeyframeStateManager {

        /**
         * Currently focused (active) keyframe.
         * @type {ObservedValue<Keyframe>}
         */
        observedActiveKeyframe = new ObservedValue(null);
        /**
         * Store currently selected keyframe(s)
         * @type {List}
         */
        selectedKeyframes = new List();
        /**
         * Target state for keyframe selection action processor
         * @type {List}
         */
        curKeyframeList = new List();
        /**
         * Snapshot of state prior to keyframe selection action processor
         * @type {List}
         */
        prevKeyframeList = new List();

        keyframeViews = new Map();

        /**
         * Boolean for tangent alignment: free (False) or match (True)
         * @type {ObservedBoolean}
         */
        tangentAlignmentEnabled = new ObservedBoolean();

        // Constants
        NULL_KEYFRAME = new Keyframe()
}
