import React from 'react';

interface ReactWatchmanOptions {
    idleTime?: number;
    onIdle?: () => void;
    onActive?: () => void;
    sensitivity?: number;
    debounce?: number;
    onVisibilityChange?: (isVisible: boolean) => void;
    onTabHide?: () => void;
    onTabShow?: (hiddenDuration: number) => void;
    onFocus?: () => void;
    onBlur?: () => void;
}
declare function useReactWatchman({ idleTime, onIdle, onActive, sensitivity, debounce, onVisibilityChange, onTabHide, onTabShow, onFocus, onBlur, }?: ReactWatchmanOptions): {
    isIdle: boolean;
};

interface WatchmanBoundaryProps extends Partial<ReactWatchmanOptions> {
    timeout?: number;
    children: React.ReactNode;
    renderIdle?: () => React.ReactNode;
}
declare const WatchmanBoundary: React.FC<WatchmanBoundaryProps>;

export { WatchmanBoundary, useReactWatchman };
export type { ReactWatchmanOptions };
