export declare class Gameloop {
    private activeLoops;
    private getLoopId;
    private getNano;
    private s2nano;
    private nano2s;
    private ms2nano;
    /**
     * Create a game loop that will attempt to update at some target `tickLengthMs`.
     *
     * `tickLengthMs` defaults to 30fps (~33.33ms).
     *
     * Internally, the `gameLoop` function created has two mechanisms to update itself.
     * One for coarse-grained updates (with `setTimeout`) and one for fine-grained
     * updates (with `setImmediate`).
     *
     * On each tick, we set a target time for the next tick. We attempt to use the coarse-
     * grained "long wait" to get most of the way to our target tick time, then use the
     * fine-grained wait to wait the remaining time.
     */
    setGameLoop: (update: (delta: number) => void, tickLengthMs?: number) => number;
    clearGameLoop: (loopId: number) => void;
}
