/**
 * Copyright (c) Haiku 2016-2018. All rights reserved.
 */
import HaikuBase from './HaikuBase';
export default class HaikuClock extends HaikuBase {
    private boundRunner;
    _deltaSinceLastTick: any;
    _isRunning: any;
    _localExplicitlySetTime: any;
    _localFramesElapsed: any;
    _localTimeElapsed: any;
    _numLoopsRun: any;
    options: any;
    _tickables: any;
    GLOBAL_ANIMATION_HARNESS: any;
    constructor(tickables: any, options: any);
    reinitialize(): this;
    addTickable(tickable: any): this;
    assignOptions(options: any): this;
    run(): void;
    tick(): void;
    getTime(): any;
    setTime(time: any): this;
    getFPS(): number;
    /**
     * @method getExplicitTime
     * @description Return either the running time or the controlled time, depending on whether this
     * clock is in control mode or not.
     */
    getExplicitTime(): any;
    /**
     * @method getControlledTime
     * @description Return the value of time that has been explicitly controlled.
     */
    getControlledTime(): any;
    isTimeControlled(): boolean;
    /**
     * @method getRunningTime
     * @description Return the running time, which is the value of time that has elapsed whether or
     * not time has been 'controlled' in control mode.
     */
    getRunningTime(): any;
    isRunning(): any;
    start(): this;
    stop(): this;
    getFrameDuration(): any;
    destroy(): void;
    static __name__: string;
}
