/**
 * SAM ERP 공통 훅 모음
 *
 * @example
 * import { useDetailPageState, useDetailData, useCRUDHandlers } from '@/hooks';
 */

// ===== 상세 페이지 관련 =====
export { useDetailPageState } from './useDetailPageState';
export type {
  DetailMode,
  UseDetailPageStateOptions,
  UseDetailPageStateReturn,
} from './useDetailPageState';

export { useDetailData } from './useDetailData';
export type {
  ApiResponse,
  FetchFunction,
  UseDetailDataOptions,
  UseDetailDataReturn,
} from './useDetailData';

export { useCRUDHandlers } from './useCRUDHandlers';
export type {
  CRUDResult,
  SuccessMessages,
  ErrorMessages,
  UseCRUDHandlersOptions,
  UseCRUDHandlersReturn,
} from './useCRUDHandlers';

export { useDetailPermissions } from './useDetailPermissions';
export type {
  DetailPermissionConfig,
  UseDetailPermissionsOptions,
  UseDetailPermissionsReturn,
} from './useDetailPermissions';

// ===== 리스트 검색 상태 보존 =====
export { useListSearchState } from './useListSearchState';
export type {
  SearchStateField,
  UseListSearchStateOptions,
  UseListSearchStateReturn,
} from './useListSearchState';

// ===== 날짜 범위 / 목록 페이지 =====
export { useDateRange } from './useDateRange';
export type { DateRangePreset, UseDateRangeReturn } from './useDateRange';

export { useAccountingListPage, DEFAULT_PAGINATION } from './useAccountingListPage';
export type { PaginationMeta, UseAccountingListPageReturn } from './useAccountingListPage';

// ===== 기존 훅 =====
export { usePermission } from './usePermission';
export { useAuthGuard } from './useAuthGuard';
export { useUserRole } from './useUserRole';
export { useCommonCodes } from './useCommonCodes';
export { useClientList } from './useClientList';
export { useClientGroupList } from './useClientGroupList';
export { useItemList } from './useItemList';
export { useDaumPostcode } from './useDaumPostcode';
export { useCurrentTime } from './useCurrentTime';
export { useFCM } from './useFCM';
export { useMenuPolling } from './useMenuPolling';
export { useCEODashboard } from './useCEODashboard';
export { useCardManagementModals } from './useCardManagementModals';
export { useDeleteDialog } from './useDeleteDialog';
