import { Observer } from 'rxjs'; export interface IInterval { configure(observer: Partial>): IRecurringTask; } export interface ISchedulable { attach(interval: IInterval): void; } export interface IRecurringTask { start(): void; stop(): void; } export declare class Interval implements IInterval, IRecurringTask { private readonly interval; private readonly latch; constructor(period: number); start(): void; stop(): void; configure(observer: Partial>): IRecurringTask; } /** * Creates a recurring task that occurs every period (milliseconds) * @param period Delay in milliseconds between each invocation * @param schedulable The Schedulable interface to attach the interval to * @returns A recurring task to start/stop the job. */ export declare function createInterval(period: number, schedulable: ISchedulable): IRecurringTask;