import { NgZone, Injector } from '@angular/core'; import 'rxjs/add/operator/debounceTime'; import 'rxjs/add/operator/take'; import 'rxjs/add/operator/publish'; import 'rxjs/add/operator/observeOn'; export declare type Deadline = { didTimeout: boolean; timeRemaining: () => number; }; export declare type IdleCallback = (deadline: Deadline) => void; export declare type IdleOptions = { timeout: number; }; export declare class Idle { ngZone: NgZone; idleHandlers: Map<{}, {}>; stableObservable$: any; constructor(ngZone: NgZone); requestIdleCallback(callback: any): void; cancelIdleCallback(handler: any): void; polyfillCancelIdleCallback(handler: any): void; polyfillRequestIdleCallback(callback: IdleCallback, {timeout}?: IdleOptions): void; } export declare const ANGULARCLASS_IDLE_PROVIDERS: typeof Idle[]; export declare function setupPrefetchInitializer(injector: Injector, callbacks?: Array): () => any; export declare function providePrefetchIdleCallbacks(prefetchCallbacks?: any[]): (typeof Idle | { provide: any; multi: boolean; useFactory: (injector: any) => () => any; deps: typeof Injector[]; })[];