/**
 * Hooks 导出
 */

// ==================== 响应式 Hooks ====================
export {
  useBreakpoint,
  useBreakpointGTE,
  useScreenSize,
  useWindowDimensions,
  useOrientation,
  usePlatform,
  useResponsiveValue,
  useColumnCount,
  useResponsiveSpacing,
  useResponsive,
  getBreakpoint,
  getFineBreakpoint,
  isBreakpointGTE,
  isBreakpointLT,
  isBreakpointBetween,
  BREAKPOINTS,
  FINE_BREAKPOINTS,
} from '../presentation/hooks/responsive';

export type {
  BreakpointKey,
  FineBreakpointKey,
  BreakpointValue,
  ResponsiveValue,
  Orientation,
  PlatformInfo,
  ScreenSize,
  MediaQueryOptions,
  ResponsiveInfo,
} from '../presentation/hooks/responsive';

// ==================== 其他 Hooks ====================
export {
  usePrefetch,
  prefetchPosts,
  prefetchConversations,
  prefetchUserInfo,
  prefetchOnAppLaunch,
  prefetchMessageScreen,
  prefetchHomeScreen,
} from './usePrefetch';

// ==================== 分页 Hooks ====================
export {
  usePagination,
  usePaginationManager,
} from './usePagination';

export type {
  UsePaginationOptions,
  UsePaginationReturn,
} from './usePagination';

// ==================== 游标分页 Hooks ====================
export { useCursorPagination } from './useCursorPagination';

// ==================== 连接状态 Hooks ====================
export { useConnectionState } from './useConnectionState';

export type { UseConnectionStateResult } from './useConnectionState';

// ==================== 媒体缓存 Hooks ====================
export { useMediaCache } from './useMediaCache';

export type { UseMediaCacheReturn } from './useMediaCache';

// ==================== 差异更新 Hooks ====================
export { useDifferentialMessages } from './useDifferentialMessages';

export type {
  UseDifferentialMessagesOptions,
  UseDifferentialMessagesResult,
} from './useDifferentialMessages';

export { useDifferentialPosts } from './useDifferentialPosts';

export type {
  UseDifferentialPostsOptions,
  UseDifferentialPostsResult,
  DiffUpdatesInfo,
} from './useDifferentialPosts';

// ==================== 平台键盘 Hooks ====================
export {
  usePlatformKeyboard,
  useKeyboardAvoidingProps,
  useKeyboardListener,
} from './usePlatformKeyboard';

export type {
  KeyboardEventType,
  PlatformKeyboardOptions,
  PlatformKeyboardResult,
} from './usePlatformKeyboard';