import { Scheduler, Timer, Timeline, Task } from '../interfaces';
import { Asap } from './ClockTimer';
import { PredeterminedTask } from './PredeterminedTask';
export declare class TaskScheduler implements Scheduler {
    private timer;
    private timeline;
    private _timer;
    private _nextArrival;
    private _runReadyTasksBound;
    constructor(timer: Timer<Asap>, timeline: Timeline<PredeterminedTask>);
    now(): number;
    asap(task: Task): PredeterminedTask;
    delay(delay: number, task: Task): PredeterminedTask;
    periodic(period: number, task: Task): PredeterminedTask;
    schedule(delay: number, period: number, task: Task): PredeterminedTask;
    cancel(task: PredeterminedTask): void;
    cancelAll(f: (task: PredeterminedTask) => boolean): void;
    private _reschedule();
    private _unschedule();
    private _scheduleNextRun(time);
    private _scheduleNextArrival(nextArrival, time);
    private _runReadyTasks(time);
}
