// Generated by dts-bundle v0.7.3

declare module 'time-events-manager' {
    export * from 'time-events-manager/interval/interval-decorator';
    export * from 'time-events-manager/timeout/timeout-decorator';
}

declare module 'time-events-manager/interval/interval-decorator' {
    import { IntervalCollection } from 'time-events-manager/interval/interval-collection.model';
    export var intervalCollection: IntervalCollection;
}

declare module 'time-events-manager/timeout/timeout-decorator' {
    import { TimeoutCollection } from 'time-events-manager/timeout/timeout-collection.model';
    export var timeoutCollection: TimeoutCollection;
}

declare module 'time-events-manager/interval/interval-collection.model' {
    import { Interval } from 'time-events-manager/interval/interval.model';
    export class IntervalCollection {
        add(handler: any, interval?: any, ...args: any[]): any;
        remove(id: number): void;
        get(index: number): Interval;
        getAll(): Interval[];
        getById(id: number): Interval;
        removeAll(): void;
    }
}

declare module 'time-events-manager/timeout/timeout-collection.model' {
    import { Timeout } from 'time-events-manager/timeout/timeout.model';
    export class TimeoutCollection {
        add(handler: Function, timeout?: number, ...args: any[]): any;
        remove(id: number): void;
        get(index: number): Timeout;
        getScheduled(): Timeout[];
        getCompleted(): Timeout[];
        getAll(): Timeout[];
        getById(id: number): Timeout;
        removeAll(): void;
    }
}

declare module 'time-events-manager/interval/interval.model' {
    export abstract class Interval {
        id: number;
        handler: Function;
        interval: number;
        arguments: any[];
        timestamp: number;
    }
}

declare module 'time-events-manager/timeout/timeout.model' {
    import { TimeoutStatus } from 'time-events-manager/timeout/timeout-status.model';
    export class Timeout {
        uuid: string;
        handler: Function;
        timeout: number;
        arguments: any[];
        id: number;
        timestamp: number;
        status: TimeoutStatus;
        constructor(handler: Function, timeout: number, ...args: any[]);
    }
}

declare module 'time-events-manager/timeout/timeout-status.model' {
    export enum TimeoutStatus {
        Scheduled = 0,
        Completed = 1,
    }
}

