export type IdleTimeoutCallback = ({ isIdle, eventType, instance, }: { isIdle: boolean; eventType?: string; instance: IdleTimeout; }) => unknown; export interface IdleTimeoutStrictOption { /** * HTMLElement to spy / watch * @default undefined */ element?: HTMLElement | Document; /** * Timeout duration in ms * @default 60 * 1000 * 5 // 5 min */ timeout: number; /** * Watch once * @default false */ once: boolean; /** * Watch immediately on load (make it false is useful for SSR context) * @default true */ immediate: boolean; } export type IdleTimeoutOptions = Partial; export declare class IdleTimeout { private readonly callback; private readonly defaultOptions; private options; private timeoutHandler?; private isIdle; private isDestroy; private startTime; private remainingTime; private lastClientX; private lastClientY; private eventNames; constructor(callback: IdleTimeoutCallback, options?: IdleTimeoutOptions); get element(): Document | HTMLElement; start(): void; pause(): void; resume(): void; reset(): void; destroy(): void; private resetTimeout; private handleEvent; private handleTimeout; get destroyed(): boolean; get timeout(): number; set timeout(value: number); get idle(): boolean; set idle(value: boolean); }