#import <Animations/Animation.idl>
#import <Animations/KeyframeEffect.idl>

// https://drafts.csswg.org/web-animations-1/#the-animatable-interface-mixin
interface mixin Animatable {
    Animation animate(object? keyframes, optional (unrestricted double or KeyframeAnimationOptions) options = {});
    sequence<Animation> getAnimations(optional GetAnimationsOptions options = {});
};

// https://drafts.csswg.org/web-animations-1/#dictdef-keyframeanimationoptions
dictionary KeyframeAnimationOptions : KeyframeEffectOptions {
    DOMString id = "";
    AnimationTimeline? timeline;
};

// https://drafts.csswg.org/web-animations-1/#dictdef-getanimationsoptions
dictionary GetAnimationsOptions {
    boolean subtree = false;
    CSSOMString? pseudoElement = null;
};
