/**
 * Create a reactive idle detector
 *
 * @example
 * ```ts
 * const idle = useIdle({
 *   timeout: 30000, // 30 seconds
 *   onIdle: () => console.log('User is idle'),
 *   onActive: () => console.log('User is active'),
 * })
 *
 * // Subscribe to idle state changes
 * idle.subscribe((state) => {
 *   console.log('Is idle:', state.isIdle)
 *   console.log('Idle for:', state.idleTime, 'ms')
 * })
 *
 * // Manually reset the idle timer
 * idle.reset()
 * ```
 */
export declare function useIdle(options?: IdleOptions): IdleRef;
/**
 * Simple boolean idle state
 *
 * @example
 * ```ts
 * const isIdle = useIdleState(30000) // 30 seconds
 *
 * isIdle.subscribe((idle) => {
 *   console.log('User idle:', idle)
 * })
 * ```
 */
export declare function useIdleState(timeout?: number): void;
/**
 * Track user's last active timestamp
 *
 * @example
 * ```ts
 * const lastActive = useLastActive()
 *
 * lastActive.subscribe((timestamp) => {
 *   console.log('Last active:', new Date(timestamp))
 * })
 * ```
 */
export declare function useLastActive(): void;
/**
 * Auto-logout after idle timeout
 *
 * @example
 * ```ts
 * useAutoLogout(5 * 60 * 1000, () => {
 *   // Logout user after 5 minutes of inactivity
 *   window.location.href = '/logout'
 * })
 * ```
 */
export declare function useAutoLogout(timeout: number, onLogout: () => void, options?: { warningTime?: number, onWarning?: (remainingTime: number) => void }): void;
/**
 * Idle Detection Composables
 *
 * Reactive utilities for detecting user idle state and activity.
 */
export declare interface IdleState {
  isIdle: boolean
  lastActive: number
  idleTime: number
}
export declare interface IdleOptions {
  timeout?: number
  events?: string[]
  listenTo?: EventTarget
  initialState?: boolean
  onIdle?: () => void
  onActive?: () => void
}
export declare interface IdleRef {
  get: () => IdleState
  subscribe: (fn: (state: IdleState) => void) => () => void
  reset: () => void
  isIdle: () => boolean
}
