﻿interface IdleCallbackDeadline {
    timeRemaining: () => number;
}

interface Window {
    HTMLElement: {
        prototype: HTMLElement;
        new (): HTMLElement;
    };

    requestIdleCallback(callback: (deadline: IdleCallbackDeadline) => void): () => void;

    Math: Math;
}

interface Array<T> {
    filter<U extends T>(callbackfn: (a: T) => a is U, thisArg?: any): U[];

    find<U extends T>(predicate: (value: T, index: number, obj: Array<T>) => value is U): U | undefined;
}

declare var  __webpack_public_path__:string;
