import { ReactiveElement } from 'lit'; import { DisposalBin } from '../../../base/events'; import { Logger } from '../../../base/logger'; import { MediaController } from '../../controller'; export declare type IdleManagerHost = ReactiveElement & { readonly controller: MediaController; }; /** * Tracks user activity and determines when they are idle/inactive. Elements can dispatch requests * to pause/resume tracking idle state. */ export declare class IdleManager { protected readonly _host: IdleManagerHost; protected readonly _disconnectDisposal: DisposalBin; protected readonly _logger: Logger; constructor(_host: IdleManagerHost); /** * Prevent an `idle` state occurring. */ protected _preventIdling: boolean; /** * The amount of time in `ms` to pass before considering the user to be idle. */ timeout: number; /** * Whether there has been no user activity for the given `timeout` period or greater. */ get isIdle(): boolean; protected _handleUserInteraction(request?: Event): void; protected _timeoutId: number; protected _setIdleContext(isIdle: boolean): void; /** * Start tracking idle state. If `pause` is called this method will do nothing until `resume` * is called. * * @param request */ start(request?: Event): void; /** * Enables tracking idle state to resume. * * @param request */ resume(request?: Event): void; /** * Pause tracking idle state. Prevents further idle states to occur until `resume` is called. * * @param request */ pause(request?: Event): void; /** * Stop idling. * * @param request */ stop(request?: Event): void; private _prevIdleValue; protected _handleIdleChange(request?: Event): void; protected _handleResumeIdleTracking(request?: Event): void; protected _handlePauseIdleTracking(request?: Event): void; }