/**
 * Exports publics de la feature playlists
 * T0464: Create Playlist CRUD Final Integration
 */

// Components
export { PlaylistCard } from './components/PlaylistCard';
export { PlaylistList } from './components/PlaylistList';
export { PlaylistHeader } from './components/PlaylistHeader';
export { PlaylistActions } from './components/PlaylistActions';
export { PlaylistForm } from './components/PlaylistForm';
export { CreatePlaylistDialog } from './components/CreatePlaylistDialog';
export { PlaylistAnalytics } from './components/PlaylistAnalytics';
export { PlaylistEditor } from './components/PlaylistEditor';
export { PlaylistManager } from './components/PlaylistManager';
export { PlaylistTrackList } from './components/PlaylistTrackList';
export { PlaylistTrackItem } from './components/PlaylistTrackItem';
export { RemoveTrackButton } from './components/RemoveTrackButton';
export { AddTrackToPlaylistModal } from './components/AddTrackToPlaylistModal';
// Collaboration components
export { CollaboratorList } from './components/CollaboratorList';
export { SharePlaylistModal } from './components/SharePlaylistModal';
export { ShareLinkButton } from './components/ShareLinkButton';
export { ExportPlaylistButton } from './components/ExportPlaylistButton';
export { ImportPlaylistButton } from './components/ImportPlaylistButton';
export { DuplicatePlaylistButton } from './components/DuplicatePlaylistButton';
export { PlaylistSearch } from './components/PlaylistSearch';
export { PlaylistRecommendations } from './components/PlaylistRecommendations';
export { PlaylistErrorBoundary } from './components/PlaylistErrorBoundary';

// Pages
export { PlaylistListPage } from './pages/PlaylistListPage';
export { PlaylistDetailPage } from './pages/PlaylistDetailPage';
export { PlaylistCreatePage } from './pages/PlaylistCreatePage';
export { PlaylistEditPage } from './pages/PlaylistEditPage';

// Routes
export { PlaylistRoutes } from './routes';

// Hooks
export {
  usePlaylist,
  usePlaylists,
  useCreatePlaylist,
  useUpdatePlaylist,
  useDeletePlaylist,
  useCollaborators,
  useAddCollaborator,
  useRemoveCollaborator,
  useUpdateCollaboratorPermission,
  useCreateShareLink,
} from './hooks/usePlaylist';
export { usePlaylistPermissions } from './hooks/usePlaylistPermissions';

// Services
export * from './services/playlistService';

// Utils
export * from './utils/permissions';

// Types
export type {
  Playlist,
  PlaylistTrack,
  Track,
  CreatePlaylistRequest,
  UpdatePlaylistRequest,
  PlaylistListResponse,
} from './types';

// Collaboration types
export type {
  PlaylistCollaborator,
  AddCollaboratorRequest,
  UpdateCollaboratorPermissionRequest,
  PlaylistShareLink,
} from './services/playlistService';

