/**
 * Headless UI
 *
 * Model-agnostic composable primitives for building custom UIs.
 * Provides hooks for pagination, selection, sorting, filtering, search,
 * modals, confirmations, toasts, and drawers.
 *
 * @example
 * ```tsx
 * import {
 *   usePagination,
 *   useSelection,
 *   useSorting,
 *   useModal,
 *   useConfirmation,
 *   useToast,
 *   ToastProvider,
 *   ConfirmationProvider,
 * } from '@/prism/headless';
 * ```
 *
 * ⚠️ AUTO-GENERATED BY PRISM - DO NOT EDIT
 */

// Types
export type {
  // Pagination
  PaginationOptions,
  PaginationState,
  PaginationActions,
  UsePaginationResult,
  // Selection
  SelectionOptions,
  SelectionState,
  SelectionActions,
  UseSelectionResult,
  // Sorting
  SortDirection,
  SortingOptions,
  SortEntry,
  SortingState,
  SortingActions,
  UseSortingResult,
  // Filtering
  FilterOperator,
  FilterEntry,
  FilteringOptions,
  FilteringState,
  FilteringActions,
  UseFilteringResult,
  // Search
  SearchOptions,
  SearchState,
  SearchActions,
  UseSearchResult,
  // Modal
  ModalOptions,
  ModalState,
  ModalActions,
  UseModalResult,
  // Confirmation
  ConfirmationVariant,
  ConfirmationOptions,
  ConfirmationState,
  UseConfirmationResult,
  // Toast
  ToastType,
  ToastEntry,
  ToastOptions,
  ToastState,
  ToastActions,
  UseToastResult,
  // Drawer
  DrawerPosition,
  DrawerOptions,
  DrawerState,
  DrawerActions,
  UseDrawerResult,
  // Utilities
  Identifiable,
  ExportFormat,
  ExportOptions,
  TransformOptions,
  TransformResult,
} from './types';

// Composables
export { usePagination } from './composables/usePagination';
export { useSelection } from './composables/useSelection';
export { useSorting } from './composables/useSorting';
export { useFiltering } from './composables/useFiltering';
export { useSearch } from './composables/useSearch';

// UI State
export { useModal } from './ui/useModal';
export {
  useConfirmation,
  useConfirmationState,
  ConfirmationProvider,
  type ConfirmationDialogProps,
} from './ui/useConfirmation';
export {
  useToast,
  useToastState,
  ToastProvider,
  type ToastContainerProps,
} from './ui/useToast';
export { useDrawer } from './ui/useDrawer';

// Utilities
export {
  transformData,
  filterData,
  sortData,
  searchData,
  paginateData,
} from './utils/transform';
export {
  exportData,
  exportToCSV,
  exportToJSON,
} from './utils/export';
