// Signal module - Re-exports from @signals
// All core signal functionality is provided by mizchi/signals

// Signal and reactive primitives
pub using @signals {
  type Signal,
  signal,
  on,
  on_immediate,
}

// Effects
pub using @signals {
  render_effect,
  effect,
  effect_when,
  effect_once,
  on_mount,
}

// Memo and computed
pub using @signals {
  memo,
  computed,
}

// Context and lifecycle
pub using @signals {
  type Owner,
  new_effect_id,
  untracked,
  batch_start,
  batch_end,
  batch,
  is_batching,
  on_cleanup,
  set_current_cleanups,
  run_with_cleanup_tracking,
  get_owner,
  run_with_owner,
  create_root,
  create_root_with_dispose,
  register_disposer,
  register_owner_cleanup,
  has_owner,
  with_parent_owner,
}

// Combinators
pub using @signals {
  sig_map,
  sig_filter,
  sig_filter_map,
  combine2,
  combine3,
  combine4,
  all,
  any,
  select,
  to_getter,
  flatten,
  switch_,
}

// Watch
pub using @signals {
  watch,
  watch_immediate,
  previous,
  previous_with_initial,
}

// Context Provider
pub using @signals {
  type Context,
  create_context,
  provide,
  use_context,
}

// Store
pub using @signals {
  type SplitStore2,
  type SplitStore3,
  type Lens,
  type LensStore,
  trait Snapshot,
}