'use client'

// AUTO-GENERATED by mizan - do not edit manually
// Regenerate with: npm run schemas

import { useChannel, type ChannelSubscription } from 'mizan/channels'

import type { ChatParams, ChatReactMessage, ChatDjangoMessage, NotificationsDjangoMessage, PresenceDjangoMessage, PrivateDjangoMessage } from './generated.channels'

// ============================================================================
// Channel Hooks
// ============================================================================

/**
 * Hook for the chat channel.
 */
export function useChatChannel(params: ChatParams): ChannelSubscription<ChatParams, ChatDjangoMessage, ChatReactMessage> {
  return useChannel('chat', params)
}

/**
 * Hook for the notifications channel.
 */
export function useNotificationsChannel(): ChannelSubscription<Record<string, never>, NotificationsDjangoMessage, never> {
  return useChannel('notifications', {})
}

/**
 * Hook for the presence channel.
 */
export function usePresenceChannel(): ChannelSubscription<Record<string, never>, PresenceDjangoMessage, never> {
  return useChannel('presence', {})
}

/**
 * Hook for the private channel.
 */
export function usePrivateChannel(): ChannelSubscription<Record<string, never>, PrivateDjangoMessage, never> {
  return useChannel('private', {})
}
