import EventBus from '../EventBus'; import { EasingFunction } from '../easing'; interface Config { from?: number; to?: number; duration?: number; ease?: EasingFunction; loop?: boolean; } declare type EventTypes = 'start' | 'stop' | 'reverse' | 'update' | 'end'; interface TweenOn { (event: EventTypes, listener: () => void): T; (event: 'update', listener: (value: number, prevValue: number) => void): T; } export default class Tween { static DEFAULT_CONFIG: { from: number; to: number; duration: number; ease: (pos: any) => any; loop: boolean; }; private stopRunningFrame?; bus: EventBus; state: { reversed: boolean; progress: number; stoped: boolean; config: { from: number; to: number; duration: number; ease: (pos: any) => any; loop: boolean; }; }; constructor(config?: Config); on: TweenOn; off: (event: EventTypes, listener: Function) => this; config: (config?: Config) => this; start: () => this; restart: () => this; reset: () => this; stop: () => this; reverse: () => this; progress: (progress: number) => this; value: (progress?: number) => number; isEnded: (progress?: number) => boolean; } export {};