// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://w3c.github.io/web-animations/#the-animationeffecttimingreadonly-interface
// TODO(suzyh): Use enums instead of DOMStrings where specced

[
    RuntimeEnabled=WebAnimationsAPI
] interface AnimationEffectTimingReadOnly {
    readonly attribute double delay;
    readonly attribute double endDelay;
    readonly attribute DOMString fill;
    readonly attribute double iterationStart;
    readonly attribute unrestricted double iterations;
    readonly attribute (unrestricted double or DOMString) duration;
    readonly attribute PlaybackDirection direction;
    readonly attribute DOMString easing;
};
