import { Delay, Scheduler, Timeline } from '@motorcycle/types';
/**
 * Creates a test scheduler. Using the test scheduler you are the master of time.
 *
 * @name createTestScheduler(timeline?: Timeline): TestScheduler
 * @example
 * import { createTestScheduler } from '@motorcycle/test'
 * import { now, runEffects } from '@motorcycle/stream'
 *
 * const { tick, scheduler } createTestScheduler()
 *
 * const stream = now(100)
 *
 * runEffects(stream, scheduler).then(() => console.log('done!'))
 *
 * // manually tick forward in time
 * // tick returns a Promise that resolves when all scheduled tasks have been run.
 * tick(100)
 */
export declare function createTestScheduler(timeline?: Timeline): TestScheduler;
/**
 * TestScheduler
 *
 * @name TestScheduler
 * @example
 * export type TestScheduler = {
 *   readonly tick: (delay: Delay) => Promise<void>
 *   readonly scheduler: Scheduler
 * }
 * @type
 */
export declare type TestScheduler = {
    readonly tick: (delay: Delay) => Promise<void>;
    readonly scheduler: Scheduler;
};
