diff --git a/src/frontend/src/api/useConfig.ts b/src/frontend/src/api/useConfig.ts
index c8b3fc16..81007ddb 100644
--- a/src/frontend/src/api/useConfig.ts
+++ b/src/frontend/src/api/useConfig.ts
@@ -2,8 +2,8 @@ import { fetchApi } from './fetchApi'
import { keys } from './queryKeys'
import { useQuery } from '@tanstack/react-query'
import { RecordingMode } from '@/features/recording'
-import { Track } from 'livekit-client'
-import Source = Track.Source
+import type { Track } from 'livekit-client'
+type Source = Track.Source
export interface ApiConfig {
analytics?: {
diff --git a/src/frontend/src/features/notifications/MainNotificationToast.tsx b/src/frontend/src/features/notifications/MainNotificationToast.tsx
index 5de48fc4..096d70d8 100644
--- a/src/frontend/src/features/notifications/MainNotificationToast.tsx
+++ b/src/frontend/src/features/notifications/MainNotificationToast.tsx
@@ -1,7 +1,7 @@
import { useCallback, useEffect } from 'react'
import { useRoomContext } from '@livekit/components-react'
import { Participant, RemoteParticipant, RoomEvent } from 'livekit-client'
-import { ChatMessage, isMobileBrowser } from '@livekit/components-core'
+import { type ChatMessage, isMobileBrowser } from '@livekit/components-core'
import { useTranslation } from 'react-i18next'
import { NotificationType } from './NotificationType'
import { NotificationDuration } from './NotificationDuration'
diff --git a/src/frontend/src/features/notifications/NotificationPayload.ts b/src/frontend/src/features/notifications/NotificationPayload.ts
index 5c5a3a29..f4ebf7e0 100644
--- a/src/frontend/src/features/notifications/NotificationPayload.ts
+++ b/src/frontend/src/features/notifications/NotificationPayload.ts
@@ -1,4 +1,4 @@
-import { NotificationType } from './NotificationType'
+import type { NotificationType } from './NotificationType'
export interface NotificationPayload {
type: NotificationType
diff --git a/src/frontend/src/features/notifications/components/Toast.tsx b/src/frontend/src/features/notifications/components/Toast.tsx
index ca695dec..bee02c45 100644
--- a/src/frontend/src/features/notifications/components/Toast.tsx
+++ b/src/frontend/src/features/notifications/components/Toast.tsx
@@ -1,10 +1,10 @@
import { useToast } from '@react-aria/toast'
import { Button } from '@/primitives'
import { RiCloseLine } from '@remixicon/react'
-import { ToastState } from '@react-stately/toast'
import { styled } from '@/styled-system/jsx'
import { useRef } from 'react'
-import { ToastData } from './ToastProvider'
+import type { ToastState } from '@react-stately/toast'
+import type { ToastData } from './ToastProvider'
import type { QueuedToast } from '@react-stately/toast'
export const StyledToastContainer = styled('div', {
diff --git a/src/frontend/src/features/notifications/components/ToastAnyRecording.tsx b/src/frontend/src/features/notifications/components/ToastAnyRecording.tsx
index 7bcb7242..75c2f44c 100644
--- a/src/frontend/src/features/notifications/components/ToastAnyRecording.tsx
+++ b/src/frontend/src/features/notifications/components/ToastAnyRecording.tsx
@@ -1,7 +1,7 @@
import { useToast } from '@react-aria/toast'
import { useMemo, useRef } from 'react'
-import { StyledToastContainer, ToastProps } from './Toast'
+import { StyledToastContainer, type ToastProps } from './Toast'
import { HStack } from '@/styled-system/jsx'
import { useTranslation } from 'react-i18next'
import { NotificationType } from '../NotificationType'
diff --git a/src/frontend/src/features/notifications/components/ToastJoined.tsx b/src/frontend/src/features/notifications/components/ToastJoined.tsx
index 3eaa854c..f6f8b527 100644
--- a/src/frontend/src/features/notifications/components/ToastJoined.tsx
+++ b/src/frontend/src/features/notifications/components/ToastJoined.tsx
@@ -6,7 +6,7 @@ import Source = Track.Source
import { useMaybeLayoutContext } from '@livekit/components-react'
import { ParticipantTile } from '@/features/rooms/livekit/components/ParticipantTile'
-import { StyledToastContainer, ToastProps } from './Toast'
+import { StyledToastContainer, type ToastProps } from './Toast'
import { HStack, styled } from '@/styled-system/jsx'
import { Div } from '@/primitives'
import { useTranslation } from 'react-i18next'
diff --git a/src/frontend/src/features/notifications/components/ToastLowerHand.tsx b/src/frontend/src/features/notifications/components/ToastLowerHand.tsx
index 16cf5714..97a21920 100644
--- a/src/frontend/src/features/notifications/components/ToastLowerHand.tsx
+++ b/src/frontend/src/features/notifications/components/ToastLowerHand.tsx
@@ -1,7 +1,7 @@
import { useToast } from '@react-aria/toast'
import { useRef } from 'react'
-import { StyledToastContainer, ToastProps } from './Toast'
+import { StyledToastContainer, type ToastProps } from './Toast'
import { HStack } from '@/styled-system/jsx'
import { useTranslation } from 'react-i18next'
import { Button } from '@/primitives'
diff --git a/src/frontend/src/features/notifications/components/ToastMessageReceived.tsx b/src/frontend/src/features/notifications/components/ToastMessageReceived.tsx
index 492c182c..ea954a6d 100644
--- a/src/frontend/src/features/notifications/components/ToastMessageReceived.tsx
+++ b/src/frontend/src/features/notifications/components/ToastMessageReceived.tsx
@@ -1,7 +1,7 @@
import { useToast } from '@react-aria/toast'
import { useEffect, useRef } from 'react'
-import { StyledToastContainer, ToastProps } from './Toast'
+import { StyledToastContainer, type ToastProps } from './Toast'
import { Text } from '@/primitives'
import { RiMessage2Line } from '@remixicon/react'
import { useSidePanel } from '@/features/rooms/livekit/hooks/useSidePanel'
diff --git a/src/frontend/src/features/notifications/components/ToastMuted.tsx b/src/frontend/src/features/notifications/components/ToastMuted.tsx
index f63a8b52..76bc8eeb 100644
--- a/src/frontend/src/features/notifications/components/ToastMuted.tsx
+++ b/src/frontend/src/features/notifications/components/ToastMuted.tsx
@@ -1,7 +1,7 @@
import { useToast } from '@react-aria/toast'
import { useRef } from 'react'
-import { StyledToastContainer, ToastProps } from './Toast'
+import { StyledToastContainer, type ToastProps } from './Toast'
import { HStack } from '@/styled-system/jsx'
import { useTranslation } from 'react-i18next'
diff --git a/src/frontend/src/features/notifications/components/ToastPermissionsRemoved.tsx b/src/frontend/src/features/notifications/components/ToastPermissionsRemoved.tsx
index a3797081..090e4768 100644
--- a/src/frontend/src/features/notifications/components/ToastPermissionsRemoved.tsx
+++ b/src/frontend/src/features/notifications/components/ToastPermissionsRemoved.tsx
@@ -1,7 +1,7 @@
import { useToast } from '@react-aria/toast'
import { useMemo, useRef } from 'react'
-import { StyledToastContainer, ToastProps } from './Toast'
+import { StyledToastContainer, type ToastProps } from './Toast'
import { HStack } from '@/styled-system/jsx'
import { useTranslation } from 'react-i18next'
diff --git a/src/frontend/src/features/notifications/components/ToastProvider.tsx b/src/frontend/src/features/notifications/components/ToastProvider.tsx
index 5871020c..2bf20373 100644
--- a/src/frontend/src/features/notifications/components/ToastProvider.tsx
+++ b/src/frontend/src/features/notifications/components/ToastProvider.tsx
@@ -2,7 +2,7 @@
import { ToastQueue, useToastQueue } from '@react-stately/toast'
import { ToastRegion } from './ToastRegion'
import { Participant } from 'livekit-client'
-import { NotificationType } from '../NotificationType'
+import type { NotificationType } from '../NotificationType'
export interface ToastData {
participant?: Participant
diff --git a/src/frontend/src/features/notifications/components/ToastRaised.tsx b/src/frontend/src/features/notifications/components/ToastRaised.tsx
index d5c7ca2d..380ddf97 100644
--- a/src/frontend/src/features/notifications/components/ToastRaised.tsx
+++ b/src/frontend/src/features/notifications/components/ToastRaised.tsx
@@ -1,7 +1,7 @@
import { useToast } from '@react-aria/toast'
import { useRef } from 'react'
-import { StyledToastContainer, ToastProps } from './Toast'
+import { StyledToastContainer, type ToastProps } from './Toast'
import { HStack } from '@/styled-system/jsx'
import { Button, Div } from '@/primitives'
import { useTranslation } from 'react-i18next'
diff --git a/src/frontend/src/features/notifications/components/ToastRecordingRequest.tsx b/src/frontend/src/features/notifications/components/ToastRecordingRequest.tsx
index b6ddeb70..5ade87ad 100644
--- a/src/frontend/src/features/notifications/components/ToastRecordingRequest.tsx
+++ b/src/frontend/src/features/notifications/components/ToastRecordingRequest.tsx
@@ -1,7 +1,7 @@
import { useToast } from '@react-aria/toast'
import { useMemo, useRef } from 'react'
-import { StyledToastContainer, ToastProps } from './Toast'
+import { StyledToastContainer, type ToastProps } from './Toast'
import { HStack } from '@/styled-system/jsx'
import { useTranslation } from 'react-i18next'
import { NotificationType } from '../NotificationType'
diff --git a/src/frontend/src/features/notifications/components/ToastRecordingSaving.tsx b/src/frontend/src/features/notifications/components/ToastRecordingSaving.tsx
index 96059581..c2a2e3f1 100644
--- a/src/frontend/src/features/notifications/components/ToastRecordingSaving.tsx
+++ b/src/frontend/src/features/notifications/components/ToastRecordingSaving.tsx
@@ -2,7 +2,7 @@ import { useToast } from '@react-aria/toast'
import { useMemo, useRef } from 'react'
import { Text } from '@/primitives'
-import { StyledToastContainer, ToastProps } from './Toast'
+import { StyledToastContainer, type ToastProps } from './Toast'
import { HStack } from '@/styled-system/jsx'
import { useTranslation } from 'react-i18next'
import { useUser } from '@/features/auth'
diff --git a/src/frontend/src/features/notifications/hooks/useNotifyParticipants.ts b/src/frontend/src/features/notifications/hooks/useNotifyParticipants.ts
index 9ac5d882..d6499677 100644
--- a/src/frontend/src/features/notifications/hooks/useNotifyParticipants.ts
+++ b/src/frontend/src/features/notifications/hooks/useNotifyParticipants.ts
@@ -1,6 +1,6 @@
import { useRoomContext } from '@livekit/components-react'
-import { NotificationType } from '../NotificationType'
-import { NotificationPayload } from '../NotificationPayload'
+import type { NotificationType } from '../NotificationType'
+import type { NotificationPayload } from '../NotificationPayload'
export const useNotifyParticipants = () => {
const room = useRoomContext()
diff --git a/src/frontend/src/features/notifications/hooks/useSoundNotification.tsx b/src/frontend/src/features/notifications/hooks/useSoundNotification.tsx
index fcaa6cb7..900d30ea 100644
--- a/src/frontend/src/features/notifications/hooks/useSoundNotification.tsx
+++ b/src/frontend/src/features/notifications/hooks/useSoundNotification.tsx
@@ -1,7 +1,7 @@
import useSound from 'use-sound'
import { useSnapshot } from 'valtio'
import { notificationsStore } from '@/stores/notifications'
-import { NotificationType } from '@/features/notifications/NotificationType'
+import type { NotificationType } from '@/features/notifications/NotificationType'
// fixme - handle dynamic audio output changes
export const useNotificationSound = () => {
diff --git a/src/frontend/src/features/notifications/utils.ts b/src/frontend/src/features/notifications/utils.ts
index 24ef5422..899ca5e0 100644
--- a/src/frontend/src/features/notifications/utils.ts
+++ b/src/frontend/src/features/notifications/utils.ts
@@ -1,9 +1,9 @@
import { toastQueue } from './components/ToastProvider'
import { NotificationType } from './NotificationType'
import { NotificationDuration } from './NotificationDuration'
-import { Participant } from 'livekit-client'
-import { NotificationPayload } from './NotificationPayload'
-import { RecordingMode } from '@/features/recording'
+import type { Participant } from 'livekit-client'
+import type { NotificationPayload } from './NotificationPayload'
+import type { RecordingMode } from '@/features/recording'
export const showLowerHandToast = (
participant: Participant,
diff --git a/src/frontend/src/features/reactions/components/ReactionPortals.tsx b/src/frontend/src/features/reactions/components/ReactionPortals.tsx
index 0129d55f..21b20704 100644
--- a/src/frontend/src/features/reactions/components/ReactionPortals.tsx
+++ b/src/frontend/src/features/reactions/components/ReactionPortals.tsx
@@ -5,7 +5,7 @@ import { css } from '@/styled-system/css'
import { useSnapshot } from 'valtio'
import { reactionsStore } from '@/stores/reactions'
import { useAnnounceReaction } from '../hooks/useAnnounceReaction'
-import { Reaction } from '../types'
+import type { Reaction } from '../types'
import {
ANIMATION_DISTANCE,
ANIMATION_DURATION,
diff --git a/src/frontend/src/features/reactions/components/toolbar/ReactionButton.tsx b/src/frontend/src/features/reactions/components/toolbar/ReactionButton.tsx
index 3dd04a96..a2f60f1e 100644
--- a/src/frontend/src/features/reactions/components/toolbar/ReactionButton.tsx
+++ b/src/frontend/src/features/reactions/components/toolbar/ReactionButton.tsx
@@ -1,6 +1,6 @@
import { useTranslation } from 'react-i18next'
import { css } from '@/styled-system/css'
-import { Emoji } from '../../types'
+import type { Emoji } from '../../types'
import { useReactions } from '../../hooks/useReactions'
import { Button } from '@/primitives'
diff --git a/src/frontend/src/features/reactions/hooks/useAnnounceReaction.ts b/src/frontend/src/features/reactions/hooks/useAnnounceReaction.ts
index bf0fef70..18cfd579 100644
--- a/src/frontend/src/features/reactions/hooks/useAnnounceReaction.ts
+++ b/src/frontend/src/features/reactions/hooks/useAnnounceReaction.ts
@@ -5,7 +5,7 @@ import { accessibilityStore } from '@/stores/accessibility'
import { useScreenReaderAnnounce } from '@/hooks/useScreenReaderAnnounce'
import { getEmojiLabel } from '../utils'
-import { Reaction } from '../types'
+import type { Reaction } from '../types'
export const useAnnounceReaction = (latestReaction: Reaction | undefined) => {
const { t } = useTranslation('rooms', { keyPrefix: 'controls.reactions' })
diff --git a/src/frontend/src/features/reactions/hooks/useReactions.ts b/src/frontend/src/features/reactions/hooks/useReactions.ts
index 80ec1697..c0f02953 100644
--- a/src/frontend/src/features/reactions/hooks/useReactions.ts
+++ b/src/frontend/src/features/reactions/hooks/useReactions.ts
@@ -4,8 +4,8 @@ import { reactionsStore } from '@/stores/reactions'
import { NotificationType } from '@/features/notifications/NotificationType'
import { useNotifyParticipants } from '@/features/notifications'
import useRateLimiter from '@/hooks/useRateLimiter'
-import { Participant } from 'livekit-client'
-import { Emoji } from '../types'
+import type { Participant } from 'livekit-client'
+import type { Emoji } from '../types'
import { ANIMATION_DURATION } from '../constants'
export const useReactions = () => {
diff --git a/src/frontend/src/features/reactions/utils.ts b/src/frontend/src/features/reactions/utils.ts
index 4098353f..053dcc3c 100644
--- a/src/frontend/src/features/reactions/utils.ts
+++ b/src/frontend/src/features/reactions/utils.ts
@@ -1,5 +1,5 @@
import { useTranslation } from 'react-i18next'
-import { Emoji } from './types'
+import type { Emoji } from './types'
export const getEmojiLabel = (
emoji: string | Emoji,
diff --git a/src/frontend/src/features/recording/api/fetchRecording.ts b/src/frontend/src/features/recording/api/fetchRecording.ts
index 594db12b..fc8110b1 100644
--- a/src/frontend/src/features/recording/api/fetchRecording.ts
+++ b/src/frontend/src/features/recording/api/fetchRecording.ts
@@ -1,6 +1,6 @@
import { fetchApi } from '@/api/fetchApi'
-import { ApiRoom } from '@/features/rooms/api/ApiRoom'
-import { RecordingMode, RecordingStatus } from '@/features/recording'
+import type { ApiRoom } from '@/features/rooms/api/ApiRoom'
+import type { RecordingMode, RecordingStatus } from '@/features/recording'
export type RecordingApi = {
id: string
diff --git a/src/frontend/src/features/recording/api/startRecording.ts b/src/frontend/src/features/recording/api/startRecording.ts
index d6ba26ac..37950459 100644
--- a/src/frontend/src/features/recording/api/startRecording.ts
+++ b/src/frontend/src/features/recording/api/startRecording.ts
@@ -1,7 +1,7 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query'
import { fetchApi } from '@/api/fetchApi'
-import { ApiError } from '@/api/ApiError'
-import { ApiRoom } from '@/features/rooms/api/ApiRoom'
+import type { ApiError } from '@/api/ApiError'
+import type { ApiRoom } from '@/features/rooms/api/ApiRoom'
import { RecordingMode } from '../types'
export interface StartRecordingParams {
diff --git a/src/frontend/src/features/recording/api/stopRecording.ts b/src/frontend/src/features/recording/api/stopRecording.ts
index bda99eef..e402d6d7 100644
--- a/src/frontend/src/features/recording/api/stopRecording.ts
+++ b/src/frontend/src/features/recording/api/stopRecording.ts
@@ -1,7 +1,7 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query'
import { fetchApi } from '@/api/fetchApi'
-import { ApiError } from '@/api/ApiError'
-import { ApiRoom } from '@/features/rooms/api/ApiRoom'
+import type { ApiError } from '@/api/ApiError'
+import type { ApiRoom } from '@/features/rooms/api/ApiRoom'
export interface StopRecordingParams {
id: string
diff --git a/src/frontend/src/features/recording/components/ControlsButton.tsx b/src/frontend/src/features/recording/components/ControlsButton.tsx
index 33694db8..1c4669aa 100644
--- a/src/frontend/src/features/recording/components/ControlsButton.tsx
+++ b/src/frontend/src/features/recording/components/ControlsButton.tsx
@@ -3,7 +3,7 @@ import { HStack } from '@/styled-system/jsx'
import { Spinner } from '@/primitives/Spinner'
import { Button, Icon, Text } from '@/primitives'
import { useTranslation } from 'react-i18next'
-import { RecordingStatuses } from '../hooks/useRecordingStatuses'
+import type { RecordingStatuses } from '../hooks/useRecordingStatuses'
import { ReactNode, useEffect, useRef, useState } from 'react'
import { useRoomContext } from '@livekit/components-react'
import { ConnectionState } from 'livekit-client'
diff --git a/src/frontend/src/features/recording/hooks/useHasFeatureWithoutAdminRights.ts b/src/frontend/src/features/recording/hooks/useHasFeatureWithoutAdminRights.ts
index 4daef2ab..290626ff 100644
--- a/src/frontend/src/features/recording/hooks/useHasFeatureWithoutAdminRights.ts
+++ b/src/frontend/src/features/recording/hooks/useHasFeatureWithoutAdminRights.ts
@@ -1,9 +1,9 @@
import { useFeatureFlagEnabled } from 'posthog-js/react'
import { useIsAnalyticsEnabled } from '@/features/analytics/hooks/useIsAnalyticsEnabled'
-import { RecordingMode } from '../types'
+import type { RecordingMode } from '../types'
import { useIsRecordingModeEnabled } from './useIsRecordingModeEnabled'
import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOwner'
-import { FeatureFlags } from '@/features/analytics/enums'
+import type { FeatureFlags } from '@/features/analytics/enums'
export const useHasFeatureWithoutAdminRights = (
mode: RecordingMode,
diff --git a/src/frontend/src/features/recording/hooks/useHasRecordingAccess.ts b/src/frontend/src/features/recording/hooks/useHasRecordingAccess.ts
index 5fc7b13f..896b8345 100644
--- a/src/frontend/src/features/recording/hooks/useHasRecordingAccess.ts
+++ b/src/frontend/src/features/recording/hooks/useHasRecordingAccess.ts
@@ -1,9 +1,9 @@
import { useFeatureFlagEnabled } from 'posthog-js/react'
import { useIsAnalyticsEnabled } from '@/features/analytics/hooks/useIsAnalyticsEnabled'
-import { RecordingMode } from '../types'
+import type { RecordingMode } from '../types'
import { useIsRecordingModeEnabled } from './useIsRecordingModeEnabled'
import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOwner'
-import { FeatureFlags } from '@/features/analytics/enums'
+import type { FeatureFlags } from '@/features/analytics/enums'
export const useHasRecordingAccess = (
mode: RecordingMode,
diff --git a/src/frontend/src/features/recording/hooks/useIsRecordingModeEnabled.ts b/src/frontend/src/features/recording/hooks/useIsRecordingModeEnabled.ts
index 3652dcc8..f87ec5c2 100644
--- a/src/frontend/src/features/recording/hooks/useIsRecordingModeEnabled.ts
+++ b/src/frontend/src/features/recording/hooks/useIsRecordingModeEnabled.ts
@@ -1,4 +1,4 @@
-import { RecordingMode } from '../types'
+import type { RecordingMode } from '../types'
import { useConfig } from '@/api/useConfig'
export const useIsRecordingModeEnabled = (mode: RecordingMode) => {
diff --git a/src/frontend/src/features/rooms/api/ApiRoom.ts b/src/frontend/src/features/rooms/api/ApiRoom.ts
index 777c15c8..60e3e53f 100644
--- a/src/frontend/src/features/rooms/api/ApiRoom.ts
+++ b/src/frontend/src/features/rooms/api/ApiRoom.ts
@@ -1,5 +1,5 @@
-import { Track } from 'livekit-client'
-import Source = Track.Source
+import type { Track } from 'livekit-client'
+type Source = Track.Source
export type ApiLiveKit = {
url: string
diff --git a/src/frontend/src/features/rooms/api/createRoom.ts b/src/frontend/src/features/rooms/api/createRoom.ts
index c08a1b5f..1ea845da 100644
--- a/src/frontend/src/features/rooms/api/createRoom.ts
+++ b/src/frontend/src/features/rooms/api/createRoom.ts
@@ -1,7 +1,7 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query'
import { fetchApi } from '@/api/fetchApi'
-import { ApiError } from '@/api/ApiError'
-import { ApiRoom } from './ApiRoom'
+import type { ApiError } from '@/api/ApiError'
+import type { ApiRoom } from './ApiRoom'
export interface CreateRoomParams {
slug: string
diff --git a/src/frontend/src/features/rooms/api/enterRoom.ts b/src/frontend/src/features/rooms/api/enterRoom.ts
index a0564818..2c8c618a 100644
--- a/src/frontend/src/features/rooms/api/enterRoom.ts
+++ b/src/frontend/src/features/rooms/api/enterRoom.ts
@@ -1,6 +1,6 @@
import { ApiError } from '@/api/ApiError'
import { fetchApi } from '@/api/fetchApi'
-import { useMutation, UseMutationOptions } from '@tanstack/react-query'
+import { useMutation, type UseMutationOptions } from '@tanstack/react-query'
export interface EnterRoomParams {
roomId: string
diff --git a/src/frontend/src/features/rooms/api/listWaitingParticipants.ts b/src/frontend/src/features/rooms/api/listWaitingParticipants.ts
index 43c07a44..ad1153b5 100644
--- a/src/frontend/src/features/rooms/api/listWaitingParticipants.ts
+++ b/src/frontend/src/features/rooms/api/listWaitingParticipants.ts
@@ -1,6 +1,6 @@
import { fetchApi } from '@/api/fetchApi'
-import { useQuery, UseQueryOptions } from '@tanstack/react-query'
-import { ApiError } from '@/api/ApiError'
+import { useQuery, type UseQueryOptions } from '@tanstack/react-query'
+import type { ApiError } from '@/api/ApiError'
import { keys } from '@/api/queryKeys'
export type WaitingParticipant = {
diff --git a/src/frontend/src/features/rooms/api/lowerHandParticipant.ts b/src/frontend/src/features/rooms/api/lowerHandParticipant.ts
index 05d959cb..9ee9e840 100644
--- a/src/frontend/src/features/rooms/api/lowerHandParticipant.ts
+++ b/src/frontend/src/features/rooms/api/lowerHandParticipant.ts
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { fetchApi } from '@/api/fetchApi.ts'
import { useRoomData } from '@/features/rooms/livekit/hooks/useRoomData'
diff --git a/src/frontend/src/features/rooms/api/lowerHandParticipants.ts b/src/frontend/src/features/rooms/api/lowerHandParticipants.ts
index 13de51f5..3d98be52 100644
--- a/src/frontend/src/features/rooms/api/lowerHandParticipants.ts
+++ b/src/frontend/src/features/rooms/api/lowerHandParticipants.ts
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { useLowerHandParticipant } from './lowerHandParticipant'
export const useLowerHandParticipants = () => {
diff --git a/src/frontend/src/features/rooms/api/muteParticipant.ts b/src/frontend/src/features/rooms/api/muteParticipant.ts
index 66f8dd35..07c4ba52 100644
--- a/src/frontend/src/features/rooms/api/muteParticipant.ts
+++ b/src/frontend/src/features/rooms/api/muteParticipant.ts
@@ -1,4 +1,4 @@
-import { Participant, Track } from 'livekit-client'
+import { type Participant, Track } from 'livekit-client'
import Source = Track.Source
import { useRoomData } from '../livekit/hooks/useRoomData'
import {
diff --git a/src/frontend/src/features/rooms/api/muteParticipants.ts b/src/frontend/src/features/rooms/api/muteParticipants.ts
index 6a12a689..68958eab 100644
--- a/src/frontend/src/features/rooms/api/muteParticipants.ts
+++ b/src/frontend/src/features/rooms/api/muteParticipants.ts
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { useMuteParticipant } from './muteParticipant'
export const useMuteParticipants = () => {
diff --git a/src/frontend/src/features/rooms/api/patchRoom.tsx b/src/frontend/src/features/rooms/api/patchRoom.tsx
index 76d05fb0..0ce59009 100644
--- a/src/frontend/src/features/rooms/api/patchRoom.tsx
+++ b/src/frontend/src/features/rooms/api/patchRoom.tsx
@@ -1,7 +1,7 @@
import { type ApiRoom } from './ApiRoom'
import { fetchApi } from '@/api/fetchApi'
-import { useMutation, UseMutationOptions } from '@tanstack/react-query'
-import { ApiError } from '@/api/ApiError'
+import { useMutation, type UseMutationOptions } from '@tanstack/react-query'
+import type { ApiError } from '@/api/ApiError'
export type PatchRoomParams = {
roomId: string
diff --git a/src/frontend/src/features/rooms/api/removeParticipant.ts b/src/frontend/src/features/rooms/api/removeParticipant.ts
index aba45dad..5d424306 100644
--- a/src/frontend/src/features/rooms/api/removeParticipant.ts
+++ b/src/frontend/src/features/rooms/api/removeParticipant.ts
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { useRoomData } from '../livekit/hooks/useRoomData'
import { fetchApi } from '@/api/fetchApi'
diff --git a/src/frontend/src/features/rooms/api/requestEntry.ts b/src/frontend/src/features/rooms/api/requestEntry.ts
index 9e3017c3..25a80197 100644
--- a/src/frontend/src/features/rooms/api/requestEntry.ts
+++ b/src/frontend/src/features/rooms/api/requestEntry.ts
@@ -1,5 +1,5 @@
import { fetchApi } from '@/api/fetchApi'
-import { ApiLiveKit } from '@/features/rooms/api/ApiRoom'
+import type { ApiLiveKit } from '@/features/rooms/api/ApiRoom'
export interface RequestEntryParams {
roomId: string
diff --git a/src/frontend/src/features/rooms/api/updateParticipantPermissions.ts b/src/frontend/src/features/rooms/api/updateParticipantPermissions.ts
index 8f33adfb..ab90a318 100644
--- a/src/frontend/src/features/rooms/api/updateParticipantPermissions.ts
+++ b/src/frontend/src/features/rooms/api/updateParticipantPermissions.ts
@@ -1,7 +1,7 @@
-import { Participant, Track } from 'livekit-client'
+import type { Participant, Track } from 'livekit-client'
import { fetchApi } from '@/api/fetchApi'
import { useRoomData } from '@/features/rooms/livekit/hooks/useRoomData'
-import Source = Track.Source
+type Source = Track.Source
export const useParticipantPermissions = () => {
const data = useRoomData()
diff --git a/src/frontend/src/features/rooms/api/updateParticipantsPermissions.ts b/src/frontend/src/features/rooms/api/updateParticipantsPermissions.ts
index 098bc6c2..b64a7c8c 100644
--- a/src/frontend/src/features/rooms/api/updateParticipantsPermissions.ts
+++ b/src/frontend/src/features/rooms/api/updateParticipantsPermissions.ts
@@ -1,4 +1,4 @@
-import { Participant, Track } from 'livekit-client'
+import type { Participant, Track } from 'livekit-client'
import { useParticipantPermissions } from './updateParticipantPermissions'
type Source = Track.Source
diff --git a/src/frontend/src/features/rooms/components/Conference.tsx b/src/frontend/src/features/rooms/components/Conference.tsx
index 81a7cc15..61accc3f 100644
--- a/src/frontend/src/features/rooms/components/Conference.tsx
+++ b/src/frontend/src/features/rooms/components/Conference.tsx
@@ -9,7 +9,7 @@ import {
DisconnectReason,
MediaDeviceFailure,
Room,
- RoomOptions,
+ type RoomOptions,
VideoPresets,
} from 'livekit-client'
import { keys } from '@/api/queryKeys'
@@ -18,7 +18,7 @@ import { Screen } from '@/layout/Screen'
import { QueryAware } from '@/components/QueryAware'
import { ErrorScreen } from '@/components/ErrorScreen'
import { fetchRoom } from '../api/fetchRoom'
-import { ApiRoom } from '../api/ApiRoom'
+import type { ApiRoom } from '../api/ApiRoom'
import { useCreateRoom } from '../api/createRoom'
import { InviteDialog } from './InviteDialog'
import { VideoConference } from '../livekit/prefabs/VideoConference'
diff --git a/src/frontend/src/features/rooms/components/Join.tsx b/src/frontend/src/features/rooms/components/Join.tsx
index 77b99785..3d56f192 100644
--- a/src/frontend/src/features/rooms/components/Join.tsx
+++ b/src/frontend/src/features/rooms/components/Join.tsx
@@ -6,8 +6,8 @@ import { useEffect, useMemo, useRef, useState } from 'react'
import {
createLocalAudioTrack,
createLocalVideoTrack,
- LocalAudioTrack,
- LocalVideoTrack,
+ type LocalAudioTrack,
+ type LocalVideoTrack,
Track,
} from 'livekit-client'
import { H } from '@/primitives/H'
@@ -30,7 +30,7 @@ import { keys } from '@/api/queryKeys'
import { useLobby } from '../hooks/useLobby'
import { useQuery } from '@tanstack/react-query'
import { queryClient } from '@/api/queryClient'
-import { ApiLobbyStatus, ApiRequestEntry } from '../api/requestEntry'
+import { ApiLobbyStatus, type ApiRequestEntry } from '../api/requestEntry'
import { Spinner } from '@/primitives/Spinner'
import { ApiAccessLevel } from '../api/ApiRoom'
import { useLoginHint } from '@/hooks/useLoginHint'
diff --git a/src/frontend/src/features/rooms/components/MediaDeviceErrorAlert.tsx b/src/frontend/src/features/rooms/components/MediaDeviceErrorAlert.tsx
index bc240869..2043e8d6 100644
--- a/src/frontend/src/features/rooms/components/MediaDeviceErrorAlert.tsx
+++ b/src/frontend/src/features/rooms/components/MediaDeviceErrorAlert.tsx
@@ -1,4 +1,4 @@
-import { MediaDeviceFailure } from 'livekit-client'
+import type { MediaDeviceFailure } from 'livekit-client'
import { useTranslation } from 'react-i18next'
import { Button, Dialog, P } from '@/primitives'
diff --git a/src/frontend/src/features/rooms/components/Rating.tsx b/src/frontend/src/features/rooms/components/Rating.tsx
index f2d9fcef..b39870c0 100644
--- a/src/frontend/src/features/rooms/components/Rating.tsx
+++ b/src/frontend/src/features/rooms/components/Rating.tsx
@@ -7,7 +7,7 @@ import { usePostHog } from 'posthog-js/react'
import type { PostHog } from 'posthog-js'
import { Button as RACButton } from 'react-aria-components'
import { useIsAnalyticsEnabled } from '@/features/analytics/hooks/useIsAnalyticsEnabled'
-import { CandidateInfo } from '@/stores/connectionObserver'
+import type { CandidateInfo } from '@/stores/connectionObserver'
const Card = styled('div', {
base: {
diff --git a/src/frontend/src/features/rooms/hooks/useLobby.ts b/src/frontend/src/features/rooms/hooks/useLobby.ts
index c7b59977..c6e4e027 100644
--- a/src/frontend/src/features/rooms/hooks/useLobby.ts
+++ b/src/frontend/src/features/rooms/hooks/useLobby.ts
@@ -4,7 +4,7 @@ import { keys } from '@/api/queryKeys'
import {
requestEntry,
ApiLobbyStatus,
- ApiRequestEntry,
+ type ApiRequestEntry,
} from '../api/requestEntry'
export const WAIT_TIMEOUT_MS = 600000 // 10 minutes
diff --git a/src/frontend/src/features/rooms/hooks/useWaitingParticipants.ts b/src/frontend/src/features/rooms/hooks/useWaitingParticipants.ts
index d6821384..9b8459ff 100644
--- a/src/frontend/src/features/rooms/hooks/useWaitingParticipants.ts
+++ b/src/frontend/src/features/rooms/hooks/useWaitingParticipants.ts
@@ -6,7 +6,7 @@ import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOw
import { useEnterRoom } from '../api/enterRoom'
import {
useListWaitingParticipants,
- WaitingParticipant,
+ type WaitingParticipant,
} from '../api/listWaitingParticipants'
import { decodeNotificationDataReceived } from '@/features/notifications/utils'
import { NotificationType } from '@/features/notifications/NotificationType'
diff --git a/src/frontend/src/features/rooms/livekit/components/AdminToggle.tsx b/src/frontend/src/features/rooms/livekit/components/AdminToggle.tsx
index 049991f6..c5fbc636 100644
--- a/src/frontend/src/features/rooms/livekit/components/AdminToggle.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/AdminToggle.tsx
@@ -2,7 +2,7 @@ import { ToggleButton } from '@/primitives'
import { RiAdminLine } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
import { css } from '@/styled-system/css'
-import { ToggleButtonProps } from '@/primitives/ToggleButton'
+import type { ToggleButtonProps } from '@/primitives/ToggleButton'
import { useIsAdminOrOwner } from '../hooks/useIsAdminOrOwner'
import { useSidePanel } from '../hooks/useSidePanel'
diff --git a/src/frontend/src/features/rooms/livekit/components/FocusLayout.tsx b/src/frontend/src/features/rooms/livekit/components/FocusLayout.tsx
index b491f558..04364b4f 100644
--- a/src/frontend/src/features/rooms/livekit/components/FocusLayout.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/FocusLayout.tsx
@@ -1,5 +1,5 @@
import { ParticipantTile } from './ParticipantTile'
-import { FocusLayoutProps } from '@livekit/components-react'
+import type { FocusLayoutProps } from '@livekit/components-react'
export function FocusLayout({ trackRef, ...htmlProps }: FocusLayoutProps) {
return
diff --git a/src/frontend/src/features/rooms/livekit/components/FullScreenShareWarning.tsx b/src/frontend/src/features/rooms/livekit/components/FullScreenShareWarning.tsx
index 80fe4c94..1849a7bc 100644
--- a/src/frontend/src/features/rooms/livekit/components/FullScreenShareWarning.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/FullScreenShareWarning.tsx
@@ -5,7 +5,7 @@ import { screenSharePreferenceStore } from '@/stores/screenSharePreferences'
import { useSnapshot } from 'valtio'
import { useLocalParticipant } from '@livekit/components-react'
import { useSize } from '../hooks/useResizeObserver'
-import { TrackReferenceOrPlaceholder } from '@livekit/components-core'
+import type { TrackReferenceOrPlaceholder } from '@livekit/components-core'
import { useTranslation } from 'react-i18next'
export const FullScreenShareWarning = ({
diff --git a/src/frontend/src/features/rooms/livekit/components/MutedMicIndicator.tsx b/src/frontend/src/features/rooms/livekit/components/MutedMicIndicator.tsx
index fe6cca22..287cabbf 100644
--- a/src/frontend/src/features/rooms/livekit/components/MutedMicIndicator.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/MutedMicIndicator.tsx
@@ -1,5 +1,5 @@
import { useTrackMutedIndicator } from '@livekit/components-react'
-import { Participant, Track } from 'livekit-client'
+import { type Participant, Track } from 'livekit-client'
import Source = Track.Source
import { RiMicOffFill } from '@remixicon/react'
import { css } from '@/styled-system/css'
diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/ParticipantMenu.tsx b/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/ParticipantMenu.tsx
index 513481a0..1ada58c8 100644
--- a/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/ParticipantMenu.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/ParticipantMenu.tsx
@@ -1,5 +1,5 @@
import { Menu as RACMenu } from 'react-aria-components'
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOwner'
import { PinMenuItem } from './PinMenuItem'
import { RemoveMenuItem } from './RemoveMenuItem'
diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/PinMenuItem.tsx b/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/PinMenuItem.tsx
index f2699ae4..feffd28b 100644
--- a/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/PinMenuItem.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/PinMenuItem.tsx
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { menuRecipe } from '@/primitives/menuRecipe'
import { HStack } from '@/styled-system/jsx'
import { RiPushpin2Line, RiUnpinLine } from '@remixicon/react'
diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/RemoveMenuItem.tsx b/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/RemoveMenuItem.tsx
index ae583210..2544a757 100644
--- a/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/RemoveMenuItem.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/ParticipantMenu/RemoveMenuItem.tsx
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { menuRecipe } from '@/primitives/menuRecipe'
import { HStack } from '@/styled-system/jsx'
import { RiCloseLine } from '@remixicon/react'
diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantName.tsx b/src/frontend/src/features/rooms/livekit/components/ParticipantName.tsx
index a5818975..cc1d866d 100644
--- a/src/frontend/src/features/rooms/livekit/components/ParticipantName.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/ParticipantName.tsx
@@ -2,7 +2,7 @@ import type { CSSProperties } from 'react'
import { Text } from '@/primitives'
import { useTranslation } from 'react-i18next'
import { useParticipantInfo } from '@livekit/components-react'
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
const participantNameStyles: CSSProperties = {
paddingBottom: '0.1rem',
diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantPlaceholder.tsx b/src/frontend/src/features/rooms/livekit/components/ParticipantPlaceholder.tsx
index 44fb4fc7..13947f58 100644
--- a/src/frontend/src/features/rooms/livekit/components/ParticipantPlaceholder.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/ParticipantPlaceholder.tsx
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { styled } from '@/styled-system/jsx'
import { Avatar } from '@/components/Avatar'
import { useIsSpeaking } from '@livekit/components-react'
diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantTileFocus.tsx b/src/frontend/src/features/rooms/livekit/components/ParticipantTileFocus.tsx
index 605314ca..8caf64ab 100644
--- a/src/frontend/src/features/rooms/livekit/components/ParticipantTileFocus.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/ParticipantTileFocus.tsx
@@ -18,7 +18,7 @@ import { TrackReferenceOrPlaceholder } from '@livekit/components-core'
import { useEffect, useRef, useState } from 'react'
import { useSidePanel } from '../hooks/useSidePanel'
import { useFullScreen } from '../hooks/useFullScreen'
-import { Participant, Track } from 'livekit-client'
+import { type Participant, Track } from 'livekit-client'
import { MuteAlertDialog } from './MuteAlertDialog'
import { useMuteParticipant } from '@/features/rooms/api/muteParticipant'
import { useCanMute } from '@/features/rooms/livekit/hooks/useCanMute'
diff --git a/src/frontend/src/features/rooms/livekit/components/blur/BackgroundCustomProcessor.ts b/src/frontend/src/features/rooms/livekit/components/blur/BackgroundCustomProcessor.ts
index fd460218..d13b047b 100644
--- a/src/frontend/src/features/rooms/livekit/components/blur/BackgroundCustomProcessor.ts
+++ b/src/frontend/src/features/rooms/livekit/components/blur/BackgroundCustomProcessor.ts
@@ -1,4 +1,4 @@
-import { ProcessorOptions, Track } from 'livekit-client'
+import type { ProcessorOptions, Track } from 'livekit-client'
import posthog from 'posthog-js'
import {
FilesetResolver,
@@ -11,7 +11,11 @@ import {
TIMEOUT_TICK,
timerWorkerScript,
} from './TimerWorker'
-import { BackgroundProcessorInterface, ProcessorConfig, ProcessorType } from '.'
+import {
+ BackgroundProcessorInterface,
+ type ProcessorConfig,
+ type ProcessorType,
+} from '.'
const PROCESSING_WIDTH = 256
const PROCESSING_HEIGHT = 144
diff --git a/src/frontend/src/features/rooms/livekit/components/blur/FaceLandmarksProcessor.ts b/src/frontend/src/features/rooms/livekit/components/blur/FaceLandmarksProcessor.ts
index 887e2e0a..7299ae44 100644
--- a/src/frontend/src/features/rooms/livekit/components/blur/FaceLandmarksProcessor.ts
+++ b/src/frontend/src/features/rooms/livekit/components/blur/FaceLandmarksProcessor.ts
@@ -1,4 +1,4 @@
-import { ProcessorOptions, Track, TrackProcessor } from 'livekit-client'
+import type { ProcessorOptions, Track, TrackProcessor } from 'livekit-client'
import posthog from 'posthog-js'
import {
FilesetResolver,
diff --git a/src/frontend/src/features/rooms/livekit/components/blur/UnifiedBackgroundTrackProcessor.ts b/src/frontend/src/features/rooms/livekit/components/blur/UnifiedBackgroundTrackProcessor.ts
index 4d2f30f7..1db7bed8 100644
--- a/src/frontend/src/features/rooms/livekit/components/blur/UnifiedBackgroundTrackProcessor.ts
+++ b/src/frontend/src/features/rooms/livekit/components/blur/UnifiedBackgroundTrackProcessor.ts
@@ -1,10 +1,14 @@
-import { ProcessorOptions, Track } from 'livekit-client'
+import type { ProcessorOptions, Track } from 'livekit-client'
import {
BackgroundBlur,
ProcessorWrapper,
VirtualBackground,
} from '@livekit/track-processors'
-import { ProcessorConfig, BackgroundProcessorInterface, ProcessorType } from '.'
+import {
+ type ProcessorConfig,
+ BackgroundProcessorInterface,
+ ProcessorType,
+} from '.'
export class UnifiedBackgroundTrackProcessor implements BackgroundProcessorInterface {
processor: ProcessorWrapper<{ imagePath?: string; blurRadius?: number }>
diff --git a/src/frontend/src/features/rooms/livekit/components/blur/index.ts b/src/frontend/src/features/rooms/livekit/components/blur/index.ts
index 13271b31..f9e9c6d4 100644
--- a/src/frontend/src/features/rooms/livekit/components/blur/index.ts
+++ b/src/frontend/src/features/rooms/livekit/components/blur/index.ts
@@ -1,5 +1,5 @@
import { ProcessorWrapper } from '@livekit/track-processors'
-import { Track, TrackProcessor } from 'livekit-client'
+import type { Track, TrackProcessor } from 'livekit-client'
import { BackgroundCustomProcessor } from './BackgroundCustomProcessor'
import { UnifiedBackgroundTrackProcessor } from './UnifiedBackgroundTrackProcessor'
import { FaceLandmarksOptions } from './FaceLandmarksProcessor'
diff --git a/src/frontend/src/features/rooms/livekit/components/chat/Entry.tsx b/src/frontend/src/features/rooms/livekit/components/chat/Entry.tsx
index 2981f8a9..b0dc82ed 100644
--- a/src/frontend/src/features/rooms/livekit/components/chat/Entry.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/chat/Entry.tsx
@@ -2,7 +2,7 @@ import type { ReceivedChatMessage } from '@livekit/components-core'
import * as React from 'react'
import { css } from '@/styled-system/css'
import { Text } from '@/primitives'
-import { MessageFormatter } from '@livekit/components-react'
+import type { MessageFormatter } from '@livekit/components-react'
export interface ChatEntryProps extends React.HTMLAttributes {
entry: ReceivedChatMessage
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/CameraSwitchButton.tsx b/src/frontend/src/features/rooms/livekit/components/controls/CameraSwitchButton.tsx
index 74312a60..a4efedde 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/CameraSwitchButton.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/CameraSwitchButton.tsx
@@ -2,7 +2,7 @@ import { Button } from '@/primitives'
import { useMediaDeviceSelect } from '@livekit/components-react'
import { RiCameraSwitchLine } from '@remixicon/react'
import { useEffect, useState } from 'react'
-import { ButtonProps } from 'react-aria-components'
+import type { ButtonProps } from 'react-aria-components'
import { useTranslation } from 'react-i18next'
enum FacingMode {
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/ChatToggle.tsx b/src/frontend/src/features/rooms/livekit/components/controls/ChatToggle.tsx
index 80742b09..8f3ddfe8 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/ChatToggle.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/ChatToggle.tsx
@@ -5,7 +5,7 @@ import { css } from '@/styled-system/css'
import { ToggleButton } from '@/primitives'
import { chatStore } from '@/stores/chat'
import { useSidePanel } from '../../hooks/useSidePanel'
-import { ToggleButtonProps } from '@/primitives/ToggleButton'
+import type { ToggleButtonProps } from '@/primitives/ToggleButton'
import { useRegisterKeyboardShortcut } from '@/features/shortcuts/useRegisterKeyboardShortcut'
export const ChatToggle = ({
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Device/SelectDevice.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Device/SelectDevice.tsx
index c5ac2b1b..37517b3b 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/Device/SelectDevice.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/Device/SelectDevice.tsx
@@ -2,7 +2,7 @@ import { useTranslation } from 'react-i18next'
import { useMediaDeviceSelect } from '@livekit/components-react'
import { useEffect, useMemo } from 'react'
import { Select, SelectProps } from '@/primitives/Select'
-import { Placement } from '@react-types/overlays'
+import type { Placement } from '@react-types/overlays'
import { useCannotUseDevice } from '../../../hooks/useCannotUseDevice'
import { useDeviceIcons } from '@/features/rooms/livekit/hooks/useDeviceIcons'
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Device/ToggleDevice.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Device/ToggleDevice.tsx
index 5ec7b8a0..e9a1c066 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/Device/ToggleDevice.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/Device/ToggleDevice.tsx
@@ -12,13 +12,16 @@ import {
useLocalParticipant,
useMaybeRoomContext,
} from '@livekit/components-react'
-import { ButtonRecipeProps } from '@/primitives/buttonRecipe'
-import { ToggleButtonProps } from '@/primitives/ToggleButton'
+import type { ButtonRecipeProps } from '@/primitives/buttonRecipe'
+import type { ToggleButtonProps } from '@/primitives/ToggleButton'
import { openPermissionsDialog } from '@/stores/permissions'
import { useCannotUseDevice } from '../../../hooks/useCannotUseDevice'
import { useDeviceIcons } from '../../../hooks/useDeviceIcons'
import { useDeviceShortcut } from '../../../hooks/useDeviceShortcut'
-import { ToggleSource, CaptureOptionsBySource } from '@livekit/components-core'
+import type {
+ ToggleSource,
+ CaptureOptionsBySource,
+} from '@livekit/components-core'
import { getShortcutDescriptorById } from '@/features/shortcuts/catalog'
type ToggleDeviceStyleProps = {
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Device/VideoDeviceControl.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Device/VideoDeviceControl.tsx
index 4c1a92d8..bae6dcd7 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/Device/VideoDeviceControl.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/Device/VideoDeviceControl.tsx
@@ -2,7 +2,7 @@ import { useTranslation } from 'react-i18next'
import { useTrackToggle, UseTrackToggleProps } from '@livekit/components-react'
import { Button, Popover } from '@/primitives'
import { RiArrowUpSLine, RiImageCircleAiFill } from '@remixicon/react'
-import { Track, VideoCaptureOptions } from 'livekit-client'
+import { Track, type VideoCaptureOptions } from 'livekit-client'
import { ToggleDevice } from './ToggleDevice'
import { css } from '@/styled-system/css'
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/InfoToggle.tsx b/src/frontend/src/features/rooms/livekit/components/controls/InfoToggle.tsx
index 20a2603f..67dd1906 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/InfoToggle.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/InfoToggle.tsx
@@ -3,7 +3,7 @@ import { RiInformationLine } from '@remixicon/react'
import { css } from '@/styled-system/css'
import { ToggleButton } from '@/primitives'
import { useSidePanel } from '../../hooks/useSidePanel'
-import { ToggleButtonProps } from '@/primitives/ToggleButton'
+import type { ToggleButtonProps } from '@/primitives/ToggleButton'
export const InfoToggle = ({
onPress,
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Participants/HandRaisedListItem.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Participants/HandRaisedListItem.tsx
index 9ba54ce2..11689f99 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/Participants/HandRaisedListItem.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/Participants/HandRaisedListItem.tsx
@@ -7,7 +7,7 @@ import { Avatar } from '@/components/Avatar'
import { useLowerHandParticipant } from '@/features/rooms/api/lowerHandParticipant'
import { getParticipantColor } from '@/features/rooms/utils/getParticipantColor'
import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOwner'
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { isLocal } from '@/utils/livekit'
import { RiHand } from '@remixicon/react'
import { Button } from '@/primitives'
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Participants/LowerAllHandsButton.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Participants/LowerAllHandsButton.tsx
index 571439c7..ea8aa949 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/Participants/LowerAllHandsButton.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/Participants/LowerAllHandsButton.tsx
@@ -1,6 +1,6 @@
import { Button } from '@/primitives'
import { useTranslation } from 'react-i18next'
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { useLowerHandParticipants } from '@/features/rooms/api/lowerHandParticipants'
import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOwner'
import { css } from '@/styled-system/css'
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Participants/MuteEveryoneButton.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Participants/MuteEveryoneButton.tsx
index e0a39a56..137ef866 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/Participants/MuteEveryoneButton.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/Participants/MuteEveryoneButton.tsx
@@ -1,6 +1,6 @@
import { Button } from '@/primitives'
import { useTranslation } from 'react-i18next'
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOwner'
import { useMuteParticipants } from '@/features/rooms/api/muteParticipants'
import { RiMicOffLine } from '@remixicon/react'
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantListItem.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantListItem.tsx
index 1e59b373..3fd8333d 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantListItem.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantListItem.tsx
@@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next'
import { Avatar } from '@/components/Avatar'
import { getParticipantColor } from '@/features/rooms/utils/getParticipantColor'
import { getParticipantIsRoomAdmin } from '@/features/rooms/utils/getParticipantIsRoomAdmin'
-import { LocalParticipant, Participant, Track } from 'livekit-client'
+import { type LocalParticipant, type Participant, Track } from 'livekit-client'
import { isLocal } from '@/utils/livekit'
import {
useIsSpeaking,
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantsList.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantsList.tsx
index d9d727d7..0fc82a3a 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantsList.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantsList.tsx
@@ -9,7 +9,7 @@ import { HandRaisedListItem } from '../../controls/Participants/HandRaisedListIt
import { LowerAllHandsButton } from '../../controls/Participants/LowerAllHandsButton'
import { WaitingParticipantListItem } from './WaitingParticipantListItem'
import { useWaitingParticipants } from '@/features/rooms/hooks/useWaitingParticipants'
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { WaitingParticipant } from '@/features/rooms/api/listWaitingParticipants'
import { MuteEveryoneButton } from './MuteEveryoneButton'
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Participants/PinBadge.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Participants/PinBadge.tsx
index 62d8acb3..5aec0887 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/Participants/PinBadge.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/Participants/PinBadge.tsx
@@ -1,5 +1,5 @@
import { useFocusToggleParticipant } from '@/features/rooms/livekit/hooks/useFocusToggleParticipant'
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { RiPushpin2Fill } from '@remixicon/react'
import { css } from '@/styled-system/css'
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/ScreenShareToggle.tsx b/src/frontend/src/features/rooms/livekit/components/controls/ScreenShareToggle.tsx
index fee9148c..09351e70 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/ScreenShareToggle.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/ScreenShareToggle.tsx
@@ -1,7 +1,10 @@
import { Div, ToggleButton } from '@/primitives'
import { RiArrowUpLine, RiCloseFill, RiRectangleLine } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
-import { useTrackToggle, UseTrackToggleProps } from '@livekit/components-react'
+import {
+ useTrackToggle,
+ type UseTrackToggleProps,
+} from '@livekit/components-react'
import { Track } from 'livekit-client'
import React from 'react'
import { type ButtonRecipeProps } from '@/primitives/buttonRecipe'
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/ToolsToggle.tsx b/src/frontend/src/features/rooms/livekit/components/controls/ToolsToggle.tsx
index d43bcb29..df670ad2 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/ToolsToggle.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/ToolsToggle.tsx
@@ -3,7 +3,7 @@ import { RiShapesLine } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
import { useSidePanel } from '../../hooks/useSidePanel'
import { css } from '@/styled-system/css'
-import { ToggleButtonProps } from '@/primitives/ToggleButton'
+import type { ToggleButtonProps } from '@/primitives/ToggleButton'
import { useRegisterKeyboardShortcut } from '@/features/shortcuts/useRegisterKeyboardShortcut'
export const ToolsToggle = ({
diff --git a/src/frontend/src/features/rooms/livekit/components/effects/Effects.tsx b/src/frontend/src/features/rooms/livekit/components/effects/Effects.tsx
index 31d595dd..12ca745e 100644
--- a/src/frontend/src/features/rooms/livekit/components/effects/Effects.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/effects/Effects.tsx
@@ -1,5 +1,5 @@
import { useLocalParticipant } from '@livekit/components-react'
-import { LocalVideoTrack } from 'livekit-client'
+import type { LocalVideoTrack } from 'livekit-client'
import { css } from '@/styled-system/css'
import { EffectsConfiguration } from './EffectsConfiguration'
import { useCanPublishTrack } from '@/features/rooms/livekit/hooks/useCanPublishTrack'
diff --git a/src/frontend/src/features/rooms/livekit/components/effects/EffectsConfiguration.tsx b/src/frontend/src/features/rooms/livekit/components/effects/EffectsConfiguration.tsx
index d230f305..e639ab1b 100644
--- a/src/frontend/src/features/rooms/livekit/components/effects/EffectsConfiguration.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/effects/EffectsConfiguration.tsx
@@ -1,4 +1,4 @@
-import { LocalVideoTrack, Track } from 'livekit-client'
+import { type LocalVideoTrack, Track } from 'livekit-client'
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import {
diff --git a/src/frontend/src/features/rooms/livekit/components/effects/FunnyEffects.tsx b/src/frontend/src/features/rooms/livekit/components/effects/FunnyEffects.tsx
index c2d7bba6..1259a1ad 100644
--- a/src/frontend/src/features/rooms/livekit/components/effects/FunnyEffects.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/effects/FunnyEffects.tsx
@@ -4,7 +4,7 @@ import { ProcessorType } from '../blur'
import { RiGlassesLine, RiGoblet2Fill } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
import { FaceLandmarksProcessor } from '../blur/FaceLandmarksProcessor'
-import { LocalVideoTrack } from 'livekit-client'
+import type { LocalVideoTrack } from 'livekit-client'
export type FunnyEffectsProps = {
videoTrack: LocalVideoTrack
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useCanMute.ts b/src/frontend/src/features/rooms/livekit/hooks/useCanMute.ts
index 91256243..915e6d40 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useCanMute.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useCanMute.ts
@@ -1,5 +1,5 @@
import { useIsAdminOrOwner } from './useIsAdminOrOwner'
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import { useRoomData } from '@/features/rooms/livekit/hooks/useRoomData'
export const useCanMute = (participant: Participant) => {
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useCanPublishTrack.ts b/src/frontend/src/features/rooms/livekit/hooks/useCanPublishTrack.ts
index 29fdc7b2..ab57f5ed 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useCanPublishTrack.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useCanPublishTrack.ts
@@ -1,4 +1,4 @@
-import { TrackSource } from '@livekit/protocol'
+import type { TrackSource } from '@livekit/protocol'
import {
useLocalParticipant,
useParticipantPermissions,
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useCopyRoomToClipboard.ts b/src/frontend/src/features/rooms/livekit/hooks/useCopyRoomToClipboard.ts
index db2c80ae..7df70d4d 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useCopyRoomToClipboard.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useCopyRoomToClipboard.ts
@@ -2,7 +2,7 @@ import { useTelephony } from './useTelephony'
import { useTranslation } from 'react-i18next'
import { useEffect, useMemo, useState } from 'react'
import { formatPinCode } from '@/features/rooms/utils/telephony'
-import { ApiRoom } from '@/features/rooms/api/ApiRoom'
+import type { ApiRoom } from '@/features/rooms/api/ApiRoom'
import { getRouteUrl } from '@/navigation/getRouteUrl'
const COPY_SUCCESS_TIMEOUT = 3000
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useFocusToggleParticipant.ts b/src/frontend/src/features/rooms/livekit/hooks/useFocusToggleParticipant.ts
index ca3fc8f8..d462a64d 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useFocusToggleParticipant.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useFocusToggleParticipant.ts
@@ -1,5 +1,5 @@
import { useFocusToggle } from '@livekit/components-react'
-import { Participant, Track } from 'livekit-client'
+import { type Participant, Track } from 'livekit-client'
import { useCallback } from 'react'
import type { MouseEvent } from 'react'
import Source = Track.Source
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useFullScreen.ts b/src/frontend/src/features/rooms/livekit/hooks/useFullScreen.ts
index 802ff96e..1f004380 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useFullScreen.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useFullScreen.ts
@@ -3,7 +3,7 @@
// @ts-nocheck
import { useMemo, useState } from 'react'
-import { TrackReferenceOrPlaceholder } from '@livekit/components-core'
+import { type TrackReferenceOrPlaceholder } from '@livekit/components-core'
export function useFullScreen({
trackRef,
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useRaisedHand.ts b/src/frontend/src/features/rooms/livekit/hooks/useRaisedHand.ts
index dac0bf48..dd77ef7a 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useRaisedHand.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useRaisedHand.ts
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
import {
useParticipantAttribute,
useParticipants,
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useRoomData.ts b/src/frontend/src/features/rooms/livekit/hooks/useRoomData.ts
index e382dff9..cc7b94e2 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useRoomData.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useRoomData.ts
@@ -1,4 +1,4 @@
-import { ApiRoom } from '@/features/rooms/api/ApiRoom'
+import type { ApiRoom } from '@/features/rooms/api/ApiRoom'
import { useParams } from 'wouter'
import { keys } from '@/api/queryKeys'
import { queryClient } from '@/api/queryClient'
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useSyncLiveKitMetadata.ts b/src/frontend/src/features/rooms/livekit/hooks/useSyncLiveKitMetadata.ts
index 98856e4c..5e92acb2 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useSyncLiveKitMetadata.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useSyncLiveKitMetadata.ts
@@ -4,7 +4,7 @@ import { useEffect } from 'react'
import { RoomEvent } from 'livekit-client'
import { queryClient } from '@/api/queryClient'
import { keys } from '@/api/queryKeys'
-import {
+import type {
ApiAccessLevel,
ApiRoom,
RoomConfiguration,
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useVideoResolutionSubscription.ts b/src/frontend/src/features/rooms/livekit/hooks/useVideoResolutionSubscription.ts
index 13c518e2..878d2430 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useVideoResolutionSubscription.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useVideoResolutionSubscription.ts
@@ -2,8 +2,8 @@ import { useEffect } from 'react'
import { usePersistentUserChoices } from './usePersistentUserChoices'
import { useRoomContext } from '@livekit/components-react'
import {
- RemoteParticipant,
- RemoteTrackPublication,
+ type RemoteParticipant,
+ type RemoteTrackPublication,
RoomEvent,
Track,
VideoQuality,
diff --git a/src/frontend/src/features/rooms/livekit/prefabs/Chat.tsx b/src/frontend/src/features/rooms/livekit/prefabs/Chat.tsx
index 90d43eb9..d795468b 100644
--- a/src/frontend/src/features/rooms/livekit/prefabs/Chat.tsx
+++ b/src/frontend/src/features/rooms/livekit/prefabs/Chat.tsx
@@ -13,7 +13,11 @@ import { Div, Text } from '@/primitives'
import { ChatInput } from '../components/chat/Input'
import { ChatEntry } from '../components/chat/Entry'
import { useSidePanel } from '../hooks/useSidePanel'
-import { LocalParticipant, RemoteParticipant, RoomEvent } from 'livekit-client'
+import {
+ type LocalParticipant,
+ type RemoteParticipant,
+ RoomEvent,
+} from 'livekit-client'
import { css } from '@/styled-system/css'
import { useRestoreFocus } from '@/hooks/useRestoreFocus'
diff --git a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/ControlBar.tsx b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/ControlBar.tsx
index b329a238..9d8d395d 100644
--- a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/ControlBar.tsx
+++ b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/ControlBar.tsx
@@ -1,4 +1,4 @@
-import { Track } from 'livekit-client'
+import type { Track } from 'livekit-client'
import * as React from 'react'
import { MobileControlBar } from './MobileControlBar'
diff --git a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/DesktopControlBar.tsx b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/DesktopControlBar.tsx
index 13d19a71..975b8338 100644
--- a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/DesktopControlBar.tsx
+++ b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/DesktopControlBar.tsx
@@ -1,5 +1,5 @@
import { supportsScreenSharing } from '@livekit/components-core'
-import { ControlBarAuxProps } from './ControlBar'
+import type { ControlBarAuxProps } from './ControlBar'
import { css } from '@/styled-system/css'
import { LeaveButton } from '../../components/controls/LeaveButton'
import { Track } from 'livekit-client'
diff --git a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MobileControlBar.tsx b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MobileControlBar.tsx
index 887582be..4581480d 100644
--- a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MobileControlBar.tsx
+++ b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MobileControlBar.tsx
@@ -1,6 +1,6 @@
import { supportsScreenSharing } from '@livekit/components-core'
import { useTranslation } from 'react-i18next'
-import { ControlBarAuxProps } from './ControlBar'
+import type { ControlBarAuxProps } from './ControlBar'
import React from 'react'
import { css } from '@/styled-system/css'
import { LeaveButton } from '../../components/controls/LeaveButton'
diff --git a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MoreOptions.tsx b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MoreOptions.tsx
index b52558a4..482c8474 100644
--- a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MoreOptions.tsx
+++ b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MoreOptions.tsx
@@ -8,7 +8,7 @@ import { useSize } from '../../hooks/useResizeObserver'
import { useState, RefObject } from 'react'
import { Dialog, DialogTrigger, Popover } from 'react-aria-components'
import { Button } from '@/primitives'
-import { ToggleButtonProps } from '@/primitives/ToggleButton'
+import type { ToggleButtonProps } from '@/primitives/ToggleButton'
import { RiArrowDownSLine, RiArrowUpSLine } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
diff --git a/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx b/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx
index 8545ef83..13d476fb 100644
--- a/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx
+++ b/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx
@@ -5,7 +5,7 @@ import {
isWeb,
log,
} from '@livekit/components-core'
-import { Participant, RoomEvent, Track } from 'livekit-client'
+import { type Participant, RoomEvent, Track } from 'livekit-client'
import React, { useCallback, useRef, useState, useEffect } from 'react'
import {
ConnectionStateToast,
diff --git a/src/frontend/src/features/rooms/livekit/processors/RnnNoiseProcessor.ts b/src/frontend/src/features/rooms/livekit/processors/RnnNoiseProcessor.ts
index cedf696d..69a71009 100644
--- a/src/frontend/src/features/rooms/livekit/processors/RnnNoiseProcessor.ts
+++ b/src/frontend/src/features/rooms/livekit/processors/RnnNoiseProcessor.ts
@@ -1,4 +1,4 @@
-import { Track, TrackProcessor, ProcessorOptions } from 'livekit-client'
+import type { Track, TrackProcessor, ProcessorOptions } from 'livekit-client'
import { NoiseSuppressorWorklet_Name } from '@timephy/rnnoise-wasm'
// This is an example how to get the script path using Vite, may be different when using other build tools
diff --git a/src/frontend/src/features/rooms/routes/Feedback.tsx b/src/frontend/src/features/rooms/routes/Feedback.tsx
index d084e2ab..70a3364d 100644
--- a/src/frontend/src/features/rooms/routes/Feedback.tsx
+++ b/src/frontend/src/features/rooms/routes/Feedback.tsx
@@ -6,7 +6,7 @@ import { Rating } from '@/features/rooms/components/Rating.tsx'
import { useLocation } from 'wouter'
import { useMemo } from 'react'
import { DisconnectReason } from 'livekit-client'
-import { CandidateInfo } from '@/stores/connectionObserver.ts'
+import type { CandidateInfo } from '@/stores/connectionObserver'
// fixme - duplicated with home, refactor in a proper style
const Heading = styled('h1', {
diff --git a/src/frontend/src/features/rooms/utils/getParticipantColor.ts b/src/frontend/src/features/rooms/utils/getParticipantColor.ts
index 72a6e4ef..89de06e5 100644
--- a/src/frontend/src/features/rooms/utils/getParticipantColor.ts
+++ b/src/frontend/src/features/rooms/utils/getParticipantColor.ts
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
const DEFAULT_COLOR = 'rgb(87, 44, 216)'
diff --git a/src/frontend/src/features/rooms/utils/getParticipantIsRoomAdmin.ts b/src/frontend/src/features/rooms/utils/getParticipantIsRoomAdmin.ts
index a0ee52b5..e4afae46 100644
--- a/src/frontend/src/features/rooms/utils/getParticipantIsRoomAdmin.ts
+++ b/src/frontend/src/features/rooms/utils/getParticipantIsRoomAdmin.ts
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
export const getParticipantIsRoomAdmin = (
participant: Participant
diff --git a/src/frontend/src/features/rooms/utils/getParticipantName.ts b/src/frontend/src/features/rooms/utils/getParticipantName.ts
index 25488b69..7bbd4327 100644
--- a/src/frontend/src/features/rooms/utils/getParticipantName.ts
+++ b/src/frontend/src/features/rooms/utils/getParticipantName.ts
@@ -1,4 +1,4 @@
-import { Participant } from 'livekit-client'
+import type { Participant } from 'livekit-client'
export const getParticipantName = (participant: Participant): string => {
return participant.name || participant.identity || 'Unknown'
diff --git a/src/frontend/src/features/settings/components/tabs/AccessibilityTab.tsx b/src/frontend/src/features/settings/components/tabs/AccessibilityTab.tsx
index d9ed0578..a4161f69 100644
--- a/src/frontend/src/features/settings/components/tabs/AccessibilityTab.tsx
+++ b/src/frontend/src/features/settings/components/tabs/AccessibilityTab.tsx
@@ -1,5 +1,5 @@
import { Field, H, Text } from '@/primitives'
-import { TabPanel, TabPanelProps } from '@/primitives/Tabs'
+import { TabPanel, type TabPanelProps } from '@/primitives/Tabs'
import { css } from '@/styled-system/css'
import { useMemo } from 'react'
import { useTranslation } from 'react-i18next'
diff --git a/src/frontend/src/features/settings/components/tabs/AudioTab.tsx b/src/frontend/src/features/settings/components/tabs/AudioTab.tsx
index 29240d3b..ab3a7ffd 100644
--- a/src/frontend/src/features/settings/components/tabs/AudioTab.tsx
+++ b/src/frontend/src/features/settings/components/tabs/AudioTab.tsx
@@ -1,6 +1,6 @@
import { DialogProps, Field, Switch, Text } from '@/primitives'
-import { TabPanel, TabPanelProps } from '@/primitives/Tabs'
+import { TabPanel, type TabPanelProps } from '@/primitives/Tabs'
import {
useIsSpeaking,
useMediaDeviceSelect,
diff --git a/src/frontend/src/features/settings/components/tabs/GeneralTab.tsx b/src/frontend/src/features/settings/components/tabs/GeneralTab.tsx
index 3b30c631..e07d357c 100644
--- a/src/frontend/src/features/settings/components/tabs/GeneralTab.tsx
+++ b/src/frontend/src/features/settings/components/tabs/GeneralTab.tsx
@@ -1,7 +1,7 @@
import { Field, H } from '@/primitives'
import { useTranslation } from 'react-i18next'
import { useLanguageLabels } from '@/i18n/useLanguageLabels'
-import { TabPanel, TabPanelProps } from '@/primitives/Tabs'
+import { TabPanel, type TabPanelProps } from '@/primitives/Tabs'
import { userPreferencesStore } from '@/stores/userPreferences'
import { useSnapshot } from 'valtio'
diff --git a/src/frontend/src/features/settings/components/tabs/NotificationsTab.tsx b/src/frontend/src/features/settings/components/tabs/NotificationsTab.tsx
index b2134fed..baff7471 100644
--- a/src/frontend/src/features/settings/components/tabs/NotificationsTab.tsx
+++ b/src/frontend/src/features/settings/components/tabs/NotificationsTab.tsx
@@ -1,4 +1,4 @@
-import { TabPanel, TabPanelProps } from '@/primitives/Tabs'
+import { TabPanel, type TabPanelProps } from '@/primitives/Tabs'
import { Field, H } from '@/primitives'
import { css } from '@/styled-system/css'
import { useTranslation } from 'react-i18next'
diff --git a/src/frontend/src/features/settings/components/tabs/TranscriptionTab.tsx b/src/frontend/src/features/settings/components/tabs/TranscriptionTab.tsx
index d52eaf16..1fe36347 100644
--- a/src/frontend/src/features/settings/components/tabs/TranscriptionTab.tsx
+++ b/src/frontend/src/features/settings/components/tabs/TranscriptionTab.tsx
@@ -1,4 +1,4 @@
-import { TabPanel, TabPanelProps } from '@/primitives/Tabs'
+import { TabPanel, type TabPanelProps } from '@/primitives/Tabs'
import { Field, H } from '@/primitives'
import { useTranslation } from 'react-i18next'
import { RecordingLanguage, recordingStore } from '@/stores/recording'
diff --git a/src/frontend/src/features/settings/components/tabs/VideoTab.tsx b/src/frontend/src/features/settings/components/tabs/VideoTab.tsx
index 101da4a8..ae9608e1 100644
--- a/src/frontend/src/features/settings/components/tabs/VideoTab.tsx
+++ b/src/frontend/src/features/settings/components/tabs/VideoTab.tsx
@@ -1,6 +1,6 @@
import { DialogProps, Field } from '@/primitives'
-import { TabPanel, TabPanelProps } from '@/primitives/Tabs'
+import { TabPanel, type TabPanelProps } from '@/primitives/Tabs'
import { useMediaDeviceSelect, useRoomContext } from '@livekit/components-react'
import { useTranslation } from 'react-i18next'
import { usePersistentUserChoices } from '@/features/rooms/livekit/hooks/usePersistentUserChoices'
@@ -8,7 +8,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react'
import { css } from '@/styled-system/css'
import {
createLocalVideoTrack,
- LocalVideoTrack,
+ type LocalVideoTrack,
Track,
VideoPresets,
VideoQuality,
diff --git a/src/frontend/src/features/settings/hook/useSettingsDialog.ts b/src/frontend/src/features/settings/hook/useSettingsDialog.ts
index 94fbd97d..a5094839 100644
--- a/src/frontend/src/features/settings/hook/useSettingsDialog.ts
+++ b/src/frontend/src/features/settings/hook/useSettingsDialog.ts
@@ -1,6 +1,6 @@
-import { useSnapshot } from 'valtio/index'
+import { useSnapshot } from 'valtio'
import { settingsStore } from '@/stores/settings'
-import { SettingsDialogExtendedKey } from '@/features/settings/type'
+import type { SettingsDialogExtendedKey } from '@/features/settings/type'
export const useSettingsDialog = () => {
const { areSettingsOpen } = useSnapshot(settingsStore)
diff --git a/src/frontend/src/features/settings/hook/useTranscriptionLanguage.ts b/src/frontend/src/features/settings/hook/useTranscriptionLanguage.ts
index ad728cb5..230bc2de 100644
--- a/src/frontend/src/features/settings/hook/useTranscriptionLanguage.ts
+++ b/src/frontend/src/features/settings/hook/useTranscriptionLanguage.ts
@@ -1,7 +1,7 @@
import { useMemo } from 'react'
import { RecordingLanguage, recordingStore } from '@/stores/recording'
import { useTranslation } from 'react-i18next'
-import { useSnapshot } from 'valtio/index'
+import { useSnapshot } from 'valtio'
export const useTranscriptionLanguage = () => {
const { t } = useTranslation('settings', { keyPrefix: 'transcription' })
diff --git a/src/frontend/src/features/shortcuts/catalog.ts b/src/frontend/src/features/shortcuts/catalog.ts
index 4f508b16..60972ad9 100644
--- a/src/frontend/src/features/shortcuts/catalog.ts
+++ b/src/frontend/src/features/shortcuts/catalog.ts
@@ -1,4 +1,4 @@
-import { Shortcut } from './types'
+import type { Shortcut } from './types'
// Central list of current keyboard shortcuts.
// Keep a single source of truth for display and, later, customization
diff --git a/src/frontend/src/features/shortcuts/components/ShortcutRow.tsx b/src/frontend/src/features/shortcuts/components/ShortcutRow.tsx
index 962b044d..af93737e 100644
--- a/src/frontend/src/features/shortcuts/components/ShortcutRow.tsx
+++ b/src/frontend/src/features/shortcuts/components/ShortcutRow.tsx
@@ -1,7 +1,7 @@
import React from 'react'
import { css } from '@/styled-system/css'
import { text } from '@/primitives/Text'
-import { ShortcutDescriptor } from '../catalog'
+import type { ShortcutDescriptor } from '../catalog'
import { ShortcutBadge } from './ShortcutBadge'
import { useShortcutFormatting } from '../hooks/useShortcutFormatting'
import { useTranslation } from 'react-i18next'
diff --git a/src/frontend/src/features/shortcuts/formatLabels.ts b/src/frontend/src/features/shortcuts/formatLabels.ts
index d3a59f94..b421fea5 100644
--- a/src/frontend/src/features/shortcuts/formatLabels.ts
+++ b/src/frontend/src/features/shortcuts/formatLabels.ts
@@ -1,4 +1,4 @@
-import { Shortcut } from './types'
+import type { Shortcut } from './types'
import { isMacintosh } from '@/utils/livekit'
// Visible label for a shortcut (uses ⌘/Ctrl prefix when needed).
diff --git a/src/frontend/src/features/shortcuts/hooks/useShortcutFormatting.ts b/src/frontend/src/features/shortcuts/hooks/useShortcutFormatting.ts
index 4f1fcaa5..ec4c95d8 100644
--- a/src/frontend/src/features/shortcuts/hooks/useShortcutFormatting.ts
+++ b/src/frontend/src/features/shortcuts/hooks/useShortcutFormatting.ts
@@ -1,6 +1,6 @@
import { useCallback } from 'react'
import { useTranslation } from 'react-i18next'
-import { Shortcut } from '../types'
+import type { Shortcut } from '../types'
import {
formatShortcutLabel,
formatShortcutLabelForSR,
diff --git a/src/frontend/src/features/shortcuts/useRegisterKeyboardShortcut.ts b/src/frontend/src/features/shortcuts/useRegisterKeyboardShortcut.ts
index 0e8ab03c..9ec148a4 100644
--- a/src/frontend/src/features/shortcuts/useRegisterKeyboardShortcut.ts
+++ b/src/frontend/src/features/shortcuts/useRegisterKeyboardShortcut.ts
@@ -1,7 +1,7 @@
import { useEffect } from 'react'
import { keyboardShortcutsStore } from '@/stores/keyboardShortcuts'
import { formatShortcutKey } from '@/features/shortcuts/utils'
-import { ShortcutId, getShortcutDescriptorById } from './catalog'
+import { type ShortcutId, getShortcutDescriptorById } from './catalog'
export type useRegisterKeyboardShortcutProps = {
id?: ShortcutId
diff --git a/src/frontend/src/features/shortcuts/utils.ts b/src/frontend/src/features/shortcuts/utils.ts
index e6c0a8e2..2ddea63f 100644
--- a/src/frontend/src/features/shortcuts/utils.ts
+++ b/src/frontend/src/features/shortcuts/utils.ts
@@ -1,5 +1,5 @@
import { isMacintosh } from '@/utils/livekit'
-import { Shortcut } from '@/features/shortcuts/types'
+import type { Shortcut } from '@/features/shortcuts/types'
export const CTRL = 'ctrl'
diff --git a/src/frontend/src/features/subtitle/api/startSubtitle.ts b/src/frontend/src/features/subtitle/api/startSubtitle.ts
index a281a665..429f26c9 100644
--- a/src/frontend/src/features/subtitle/api/startSubtitle.ts
+++ b/src/frontend/src/features/subtitle/api/startSubtitle.ts
@@ -1,7 +1,7 @@
-import { useMutation, UseMutationOptions } from '@tanstack/react-query'
+import { useMutation, type UseMutationOptions } from '@tanstack/react-query'
import { fetchApi } from '@/api/fetchApi'
-import { ApiError } from '@/api/ApiError'
-import { ApiRoom } from '@/features/rooms/api/ApiRoom'
+import type { ApiError } from '@/api/ApiError'
+import type { ApiRoom } from '@/features/rooms/api/ApiRoom'
export interface StartSubtitleParams {
id: string
diff --git a/src/frontend/src/features/subtitle/component/Subtitles.tsx b/src/frontend/src/features/subtitle/component/Subtitles.tsx
index f434d98d..a4d0184e 100644
--- a/src/frontend/src/features/subtitle/component/Subtitles.tsx
+++ b/src/frontend/src/features/subtitle/component/Subtitles.tsx
@@ -7,7 +7,7 @@ import { Text } from '@/primitives'
import { useRoomContext } from '@livekit/components-react'
import { getParticipantColor } from '@/features/rooms/utils/getParticipantColor'
import { getParticipantName } from '@/features/rooms/utils/getParticipantName'
-import { Participant, RoomEvent } from 'livekit-client'
+import { type Participant, RoomEvent } from 'livekit-client'
import { useSnapshot } from 'valtio'
import {
accessibilityStore,
diff --git a/src/frontend/src/hooks/useApplyA11yFonts.ts b/src/frontend/src/hooks/useApplyA11yFonts.ts
index b38d2043..09efacaa 100644
--- a/src/frontend/src/hooks/useApplyA11yFonts.ts
+++ b/src/frontend/src/hooks/useApplyA11yFonts.ts
@@ -1,6 +1,6 @@
import { useEffect } from 'react'
import { useSnapshot } from 'valtio'
-import { accessibilityStore, UiFont } from '@/stores/accessibility'
+import { accessibilityStore, type UiFont } from '@/stores/accessibility'
const fontImports: Partial Promise>> = {
lexend: () => import('@fontsource-variable/lexend'),
diff --git a/src/frontend/src/navigation/getRoutePath.ts b/src/frontend/src/navigation/getRoutePath.ts
index c8701d02..8a50dafd 100644
--- a/src/frontend/src/navigation/getRoutePath.ts
+++ b/src/frontend/src/navigation/getRoutePath.ts
@@ -1,4 +1,4 @@
-import { RouteName } from '@/routes'
+import { type RouteName } from '@/routes'
import { getRouteByName } from './getRouteByName'
export const getRoutePath = (
diff --git a/src/frontend/src/navigation/getRouteUrl.ts b/src/frontend/src/navigation/getRouteUrl.ts
index 77fd8e77..d7ce053b 100644
--- a/src/frontend/src/navigation/getRouteUrl.ts
+++ b/src/frontend/src/navigation/getRouteUrl.ts
@@ -1,4 +1,4 @@
-import { RouteName } from '@/routes'
+import { type RouteName } from '@/routes'
import { getRoutePath } from './getRoutePath'
export const getRouteUrl = (
diff --git a/src/frontend/src/navigation/navigateTo.ts b/src/frontend/src/navigation/navigateTo.ts
index 1a3d7f4c..6f94317e 100644
--- a/src/frontend/src/navigation/navigateTo.ts
+++ b/src/frontend/src/navigation/navigateTo.ts
@@ -1,4 +1,4 @@
-import { RouteName } from '@/routes'
+import { type RouteName } from '@/routes'
import { navigate } from 'wouter/use-browser-location'
import { getRouteByName } from './getRouteByName'
diff --git a/src/frontend/src/primitives/FieldDescription.tsx b/src/frontend/src/primitives/FieldDescription.tsx
index f2f19aec..634d14e7 100644
--- a/src/frontend/src/primitives/FieldDescription.tsx
+++ b/src/frontend/src/primitives/FieldDescription.tsx
@@ -1,5 +1,5 @@
import { styled } from '@/styled-system/jsx'
-import { Text, TextProps } from 'react-aria-components'
+import { Text, type TextProps } from 'react-aria-components'
const StyledDescription = styled(Text, {
base: {
diff --git a/src/frontend/src/primitives/Form.tsx b/src/frontend/src/primitives/Form.tsx
index af381171..3be5a68c 100644
--- a/src/frontend/src/primitives/Form.tsx
+++ b/src/frontend/src/primitives/Form.tsx
@@ -3,7 +3,7 @@ import { Form as RACForm, type FormProps } from 'react-aria-components'
import { useTranslation } from 'react-i18next'
import { HStack } from '@/styled-system/jsx'
import { Button, useCloseDialog } from '@/primitives'
-import { ButtonProps } from '@/primitives/Button'
+import { type ButtonProps } from '@/primitives/Button'
/**
* From wrapper that exposes form data on submit and adds submit/cancel buttons
diff --git a/src/frontend/src/primitives/MenuList.tsx b/src/frontend/src/primitives/MenuList.tsx
index 58d66a52..50ca0507 100644
--- a/src/frontend/src/primitives/MenuList.tsx
+++ b/src/frontend/src/primitives/MenuList.tsx
@@ -1,5 +1,5 @@
import { ReactNode } from 'react'
-import { Menu, MenuProps, MenuItem } from 'react-aria-components'
+import { Menu, type MenuProps, MenuItem } from 'react-aria-components'
import { useTranslation } from 'react-i18next'
import { VisuallyHidden } from '@/styled-system/jsx'
import { menuRecipe } from '@/primitives/menuRecipe.ts'
diff --git a/src/frontend/src/primitives/Switch.tsx b/src/frontend/src/primitives/Switch.tsx
index 43b18b26..fa9dc3c4 100644
--- a/src/frontend/src/primitives/Switch.tsx
+++ b/src/frontend/src/primitives/Switch.tsx
@@ -3,7 +3,7 @@ import {
SwitchProps as RACSwitchProps,
} from 'react-aria-components'
import { styled } from '@/styled-system/jsx'
-import { StyledVariantProps } from '@/styled-system/types'
+import { type StyledVariantProps } from '@/styled-system/types'
import { RiCheckLine, RiCloseFill } from '@remixicon/react'
export const StyledSwitch = styled(RACSwitch, {
diff --git a/src/frontend/src/primitives/Tabs.tsx b/src/frontend/src/primitives/Tabs.tsx
index ca0a4c14..85af1a4b 100644
--- a/src/frontend/src/primitives/Tabs.tsx
+++ b/src/frontend/src/primitives/Tabs.tsx
@@ -9,7 +9,7 @@ import {
TabPanelProps as RACTabPanelProps,
} from 'react-aria-components'
import { styled } from '@/styled-system/jsx'
-import { StyledVariantProps } from '@/styled-system/types'
+import { type StyledVariantProps } from '@/styled-system/types'
import React from 'react'
const StyledTabs = styled(RACTabs, {
diff --git a/src/frontend/src/primitives/Text.tsx b/src/frontend/src/primitives/Text.tsx
index dfb8c915..712d46fc 100644
--- a/src/frontend/src/primitives/Text.tsx
+++ b/src/frontend/src/primitives/Text.tsx
@@ -1,7 +1,7 @@
/* eslint-disable react-refresh/only-export-components */
import type { HTMLAttributes } from 'react'
-import { RecipeVariantProps, cva, cx } from '@/styled-system/css'
+import { type RecipeVariantProps, cva, cx } from '@/styled-system/css'
export const text = cva({
base: {},
diff --git a/src/frontend/src/primitives/ToggleButton.tsx b/src/frontend/src/primitives/ToggleButton.tsx
index 8ce14e9e..433b1256 100644
--- a/src/frontend/src/primitives/ToggleButton.tsx
+++ b/src/frontend/src/primitives/ToggleButton.tsx
@@ -4,7 +4,7 @@ import {
ToggleButtonProps as RACToggleButtonProps,
} from 'react-aria-components'
import { type ButtonRecipeProps, buttonRecipe } from './buttonRecipe'
-import { TooltipWrapper, TooltipWrapperProps } from './TooltipWrapper'
+import { TooltipWrapper, type TooltipWrapperProps } from './TooltipWrapper'
export type ToggleButtonProps = RACToggleButtonProps &
ButtonRecipeProps &
diff --git a/src/frontend/src/stores/layout.ts b/src/frontend/src/stores/layout.ts
index f69b010a..4b30144f 100644
--- a/src/frontend/src/stores/layout.ts
+++ b/src/frontend/src/stores/layout.ts
@@ -1,5 +1,5 @@
import { proxy } from 'valtio'
-import {
+import type {
PanelId,
SubPanelId,
} from '@/features/rooms/livekit/hooks/useSidePanel'
diff --git a/src/frontend/src/stores/reactions.ts b/src/frontend/src/stores/reactions.ts
index cd853bc4..4e796281 100644
--- a/src/frontend/src/stores/reactions.ts
+++ b/src/frontend/src/stores/reactions.ts
@@ -1,5 +1,5 @@
import { proxy } from 'valtio'
-import { Reaction } from '@/features/reactions/types'
+import type { Reaction } from '@/features/reactions/types'
type State = {
reactions: Reaction[]
diff --git a/src/frontend/src/stores/settings.ts b/src/frontend/src/stores/settings.ts
index 2493aedc..fe8c9c1d 100644
--- a/src/frontend/src/stores/settings.ts
+++ b/src/frontend/src/stores/settings.ts
@@ -1,5 +1,5 @@
import { proxy } from 'valtio'
-import { SettingsDialogExtendedKey } from '@/features/settings/type'
+import type { SettingsDialogExtendedKey } from '@/features/settings/type'
type State = {
areSettingsOpen: boolean
diff --git a/src/frontend/src/stores/userChoices.ts b/src/frontend/src/stores/userChoices.ts
index 0d3e89d5..963dea5d 100644
--- a/src/frontend/src/stores/userChoices.ts
+++ b/src/frontend/src/stores/userChoices.ts
@@ -5,7 +5,7 @@ import {
} from '@/features/rooms/livekit/components/blur'
import {
loadUserChoices,
- LocalUserChoices as LocalUserChoicesLK,
+ type LocalUserChoices as LocalUserChoicesLK,
saveUserChoices,
} from '@livekit/components-core'
import { VideoQuality } from 'livekit-client'
diff --git a/src/frontend/src/stores/userPreferences.ts b/src/frontend/src/stores/userPreferences.ts
index ad651152..ca520790 100644
--- a/src/frontend/src/stores/userPreferences.ts
+++ b/src/frontend/src/stores/userPreferences.ts
@@ -1,5 +1,4 @@
-import { proxy } from 'valtio'
-import { subscribe } from 'valtio/index'
+import { proxy, subscribe } from 'valtio'
import { STORAGE_KEYS } from '@/utils/storageKeys'
type State = {
diff --git a/src/frontend/src/utils/livekit.ts b/src/frontend/src/utils/livekit.ts
index af933bcb..08acb0dd 100644
--- a/src/frontend/src/utils/livekit.ts
+++ b/src/frontend/src/utils/livekit.ts
@@ -2,7 +2,7 @@ import {
getBrowser,
LocalParticipant,
LogLevel,
- Participant,
+ type Participant,
setLogLevel,
} from 'livekit-client'
diff --git a/src/frontend/src/utils/parseLineBreaks.tsx b/src/frontend/src/utils/parseLineBreaks.tsx
index 335df8c3..ba12e99c 100644
--- a/src/frontend/src/utils/parseLineBreaks.tsx
+++ b/src/frontend/src/utils/parseLineBreaks.tsx
@@ -1,4 +1,4 @@
-import { Fragment, ReactNode } from 'react'
+import { Fragment, type ReactNode } from 'react'
export const parseLineBreaks = (text: string): ReactNode[] => {
const parts = text.split(/(
)/gi)