Package-level declarations

Types

Link copied to clipboard
class AlertState(parameters: MediasfuParameters)
Link copied to clipboard
class BreakoutState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
data class ComponentOverride<T>(val component: DefaultComponentBuilder<T>? = null, val render: @Composable (T, DefaultComponentBuilder<T>) -> Unit? = null)

Allows overrides to either fully replace a component or wrap the default implementation.

Link copied to clipboard
data class ConfirmExitModalProps(val state: MediasfuGenericState, val isVisible: Boolean, val memberName: String, val roomName: String, val isHost: Boolean, val message: String, val confirmLabel: String, val onConfirm: () -> Unit, val onDismiss: () -> Unit)

Structured props supplied to the confirm exit modal override.

Link copied to clipboard
data class ConfirmHereModalProps(val state: MediasfuGenericState, val isVisible: Boolean, val message: String, val countdownSeconds: Int, val onConfirm: () -> Unit, val onTimeout: () -> Unit, val onDismiss: () -> Unit)

Structured props supplied to the confirm here modal override.

Link copied to clipboard
class ConnectivityState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard

Compose-friendly clip behavior enum matching the Flutter names where possible.

Link copied to clipboard
data class ContainerDecoration(val border: BorderStroke? = null, val borderRadius: Dp = 0.dp, val shadowElevation: Dp = 0.dp, val tonalElevation: Dp = 0.dp, val shape: Shape? = null, val gradient: Brush? = null, val foregroundColor: Color? = null, val fontSizeOverride: Float? = null)

Basic decoration metadata to keep parity with Flutter's BoxDecoration usage.

Link copied to clipboard
data class ContainerSpacing(val start: Dp = 0.dp, val top: Dp = 0.dp, val end: Dp = 0.dp, val bottom: Dp = 0.dp)

Describes margin/padding style with directional control.

Link copied to clipboard
data class ContainerStyleOptions(val backgroundColor: Color? = null, val widthFraction: Float? = null, val heightFraction: Float? = null, val margin: ContainerSpacing? = null, val padding: ContainerSpacing? = null, val decoration: ContainerDecoration? = null, val alignment: Alignment? = null, val clipBehavior: ContainerClipBehavior = ContainerClipBehavior.None)

ContainerStyleOptions mirrors the Flutter SDK's container styling hooks so that higher level parity work can flow without inventing new terminology. The class is intentionally descriptive rather than prescriptive – downstream code can decide how much of this metadata to honor in Compose.

Link copied to clipboard
data class ControlButtonModel(val label: String, val icon: ImageVector, val alternateIcon: ImageVector? = null, val onClick: () -> Unit, val isVisible: Boolean = true, val isEnabled: Boolean = true, val isActive: Boolean = false, val activeTint: Color = Color(0xFF40C4FF), val inactiveTint: Color = Color(0xFF90A4AE), val textColor: Color = Color.White, val badgeText: String? = null, val badgeColor: Color = Color(0xFFFF4D4F), val isLoading: Boolean = false)
Link copied to clipboard

Compose equivalent of Flutter's DefaultComponentBuilder signature.

Link copied to clipboard
class DisplayState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
data class FunctionOverride<T : Function<*>>(val implementation: T? = null, val wrap: (T) -> T? = null)

Mirrors the Flutter FunctionOverride helper so logic hooks remain parity-friendly.

Link copied to clipboard
data class MediasfuGenericOptions(val preJoinPageWidget: @Composable (MediasfuGenericState) -> Unit? = null, val localLink: String = "", val connectMediaSFU: Boolean = true, val credentials: Credentials? = null, val useLocalUIMode: Boolean? = null, val seedData: SeedData? = null, val useSeed: Boolean? = null, val imgSrc: String? = null, val sourceParameters: MediasfuParameters? = null, val updateSourceParameters: (MediasfuParameters) -> Unit? = null, val returnUI: Boolean = true, val noUIPreJoinOptionsCreate: Map<String, Any>? = null, val noUIPreJoinOptionsJoin: Map<String, Any>? = null, val defaultEventType: EventType = EventType.CONFERENCE, val joinRoomClient: suspend (JoinRoomClientOptions) -> ResponseJoinRoom = { com.mediasfu.sdk.producer_client.joinRoomClient(it) }, val joinMediaSFURoom: suspend (JoinMediaSFUOptions) -> CreateJoinRoomResult = { joinRoomOnMediaSfu(it) }, val createMediaSFURoom: suspend (CreateMediaSFUOptions) -> CreateJoinRoomResult = { createRoomOnMediaSfu(it) }, val customVideoCard: @Composable (Stream) -> Unit? = null, val customAudioCard: @Composable (Stream) -> Unit? = null, val customMiniCard: @Composable (Stream) -> Unit? = null, var customComponent: @Composable (MediasfuGenericState) -> Unit? = null, val containerStyle: ContainerStyleOptions = ContainerStyleOptions(), val uiOverrides: MediasfuUiOverrides = MediasfuUiOverrides(), val customWorkspaceBuilder: @Composable (MediasfuGenericState) -> Unit? = null, val useModernTheme: Boolean = true, val useModernUI: Boolean = true, val darkMode: Boolean? = null, var onToggleAudio: suspend () -> Unit? = null, var onToggleVideo: suspend () -> Unit? = null)
Link copied to clipboard
Link copied to clipboard
data class MediasfuPollTypeOption(val value: String, val label: String)

Shared poll type descriptor used by poll modal overrides.

Link copied to clipboard
data class MediasfuUiOverrides(val requestsModal: ComponentOverride<RequestsModalProps>? = null, val waitingModal: ComponentOverride<WaitingModalProps>? = null, val pollModal: ComponentOverride<PollModalProps>? = null, val menuModal: ComponentOverride<MenuModalProps>? = null, val participantsModal: ComponentOverride<ParticipantsModalProps>? = null, val messagesModal: ComponentOverride<MessagesModalProps>? = null, val eventSettingsModal: ComponentOverride<EventSettingsModalOptions>? = null, val confirmExitModal: ComponentOverride<ConfirmExitModalProps>? = null, val confirmHereModal: ComponentOverride<ConfirmHereModalProps>? = null, val shareEventModal: ComponentOverride<ShareEventModalProps>? = null, val whiteboardModal: ComponentOverride<WhiteboardModalOptions>? = null, val configureWhiteboardModal: ComponentOverride<ConfigureWhiteboardModalOptions>? = null)

Entry points for overriding key MediaSFU UI surfaces, mirroring the React SDK's uiOverrides structure.

Link copied to clipboard
class MediaState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
class MeetingState(scope: CoroutineScope, parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
data class MenuModalProps(val state: MediasfuGenericState, val isVisible: Boolean, val roomName: String, val roomLink: String, val adminPasscode: String, val totalRequests: Int, val waitingCount: Int, val islevel: String, val coHost: String, val member: String, val eventType: EventType, val coHostResponsibility: List<CoHostResponsibility>, val onClose: () -> Unit, val onOpenRequests: () -> Unit, val onOpenWaiting: () -> Unit, val onOpenPolls: () -> Unit, val onOpenShareEvent: () -> Unit, val onOpenSettings: () -> Unit, val onOpenRecording: () -> Unit, val onOpenCoHost: () -> Unit, val onOpenMediaSettings: () -> Unit, val onOpenDisplaySettings: () -> Unit, val onOpenBreakoutRooms: () -> Unit, val onOpenWhiteboard: () -> Unit, val onOpenConfigureWhiteboard: () -> Unit, val whiteboardActive: Boolean, val whiteboardCollaboratorCount: Int, val canAccessWhiteboard: Boolean, val canConfigureWhiteboard: Boolean)

Structured props supplied to the menu modal override.

Link copied to clipboard
data class MessagesModalProps(val state: MediasfuGenericState, val isVisible: Boolean, val messages: List<Message>, val onClose: () -> Unit, val eventType: EventType, val member: String, val islevel: String, val coHost: String, val coHostResponsibility: List<CoHostResponsibility>, val startDirectMessage: Boolean, val directMessageDetails: Participant?, val chatSetting: String, val roomName: String, val socket: SocketManager?, val showAlert: ShowAlert?, val onSendMessage: (SendMessageOptions) -> Unit)

Structured props supplied to the messages modal override.

Link copied to clipboard
class MessagingState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
class ModalState(parameters: MediasfuParameters, notifier: () -> Unit, coroutineScope: CoroutineScope)
Link copied to clipboard
data class ParticipantsModalProps(val state: MediasfuGenericState, val isVisible: Boolean, val filter: String, val participants: List<Participant>, val filteredParticipants: List<Participant>, val participantCount: Int, val onFilterChange: (String) -> Unit, val onClose: () -> Unit)

Structured props supplied to the participants modal override.

Link copied to clipboard
data class PollModalProps(val state: MediasfuGenericState, val isVisible: Boolean, val isHost: Boolean, val memberName: String, val activePoll: Poll?, val previousPolls: List<Poll>, val pollTypeOptions: List<MediasfuPollTypeOption>, val questionState: MutableState<String>, val pollTypeState: MutableState<String>, val customOptionInputs: SnapshotStateList<String>, val submittingState: MutableState<Boolean>, val votingIndexState: MutableState<Int?>, val endingPollIdState: MutableState<String?>, val resetCreatePollState: () -> Unit, val handleEndPoll: (String) -> Unit, val onDismiss: () -> Unit)

Structured props supplied to the poll modal override.

Link copied to clipboard
class PollsState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
class RecordingState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
data class RequestsModalProps(val isVisible: Boolean, val requests: List<Request>, val filter: String, val pendingCount: Int, val onFilterChange: (String) -> Unit, val onClose: () -> Unit, val onAccept: (Request) -> Unit, val onReject: (Request) -> Unit)

Structured props supplied to the requests modal override.

Link copied to clipboard
class RequestsState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
class RoomState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
data class ShareEventModalProps(val state: MediasfuGenericState, val isVisible: Boolean, val roomName: String, val shareLink: String, val adminPasscode: String?, val isHost: Boolean, val eventType: EventType, val shareButtonsEnabled: Boolean, val onDismiss: () -> Unit)

Structured props supplied to the share event modal override.

Link copied to clipboard
Link copied to clipboard
class StreamsState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
Link copied to clipboard
data class WaitingModalProps(val isVisible: Boolean, val participants: List<WaitingRoomParticipant>, val filter: String, val pendingCount: Int, val onFilterChange: (String) -> Unit, val onClose: () -> Unit, val onAllow: (WaitingRoomParticipant) -> Unit, val onDeny: (WaitingRoomParticipant) -> Unit)

Structured props supplied to the waiting room modal override.

Link copied to clipboard
class WaitingRoomState(parameters: MediasfuParameters, notifier: () -> Unit)
Link copied to clipboard
class WhiteboardState(parameters: MediasfuParameters, notifier: () -> Unit)

Properties

Functions

Link copied to clipboard

Applies the container style metadata to a modifier chain.

Link copied to clipboard

Background Modal Wrapper - Wrapper for the BackgroundModal component in MediasfuGeneric

Link copied to clipboard

Breakout Rooms Modal - Complete management interface for breakout rooms

Link copied to clipboard

Breakout Rooms Modal Content Body - The main content without dialog wrapper. Can be used in unified modal system.

Link copied to clipboard
Link copied to clipboard
fun CoHostModalContentBody(props: CoHostModalOptions, modifier: Modifier = Modifier, onSave: () -> Unit? = null)

Public content body for CoHostModal - can be embedded in unified modal system Provides full co-host management functionality without AlertDialog wrapper

Link copied to clipboard

Public content body for ConfirmExitModal - can be embedded in unified modal system Provides exit confirmation UI without AlertDialog wrapper

Link copied to clipboard

Display Settings Modal - Configure display preferences

Link copied to clipboard

Public content body for DisplaySettingsModal - can be embedded in unified modal system Provides full display settings functionality without AlertDialog wrapper

Link copied to clipboard
fun FlutterParityMediasfuGeneric(options: MediasfuGenericOptions, modifier: Modifier = Modifier, stateFactory: @Composable (MediasfuGenericOptions) -> MediasfuGenericState = { rememberMediasfuGenericState(it) })

FlutterParityMediasfuGeneric mirrors the structure of mediasfu_sdk/lib/components/mediasfu_components/mediasfu_generic.dart.

Link copied to clipboard

Loading Modal - Displays loading indicator overlay

Link copied to clipboard

Media Settings Modal - Configure camera and microphone

Link copied to clipboard

Public content body for MediaSettingsModal - can be embedded in unified modal system Provides full camera/microphone/speaker selection functionality without AlertDialog wrapper

Link copied to clipboard
fun MediasfuBroadcast(options: MediasfuGenericOptions = MediasfuGenericOptions(), modifier: Modifier = Modifier)

MediasfuBroadcast - Broadcast event variant component.

Link copied to clipboard
fun MediasfuChat(options: MediasfuGenericOptions = MediasfuGenericOptions(), modifier: Modifier = Modifier)

MediasfuChat - Chat event variant component.

Link copied to clipboard
fun MediasfuConference(options: MediasfuGenericOptions = MediasfuGenericOptions(), modifier: Modifier = Modifier)

MediasfuConference - Conference event variant component.

Link copied to clipboard
fun MediasfuGeneric(options: MediasfuGenericOptions, modifier: Modifier = Modifier, state: MediasfuGenericState = rememberMediasfuGenericState(options))
Link copied to clipboard
fun MediasfuWebinar(options: MediasfuGenericOptions = MediasfuGenericOptions(), modifier: Modifier = Modifier)

MediasfuWebinar - Webinar event variant component.

Link copied to clipboard

MenuModal - Displays the main menu with room info and action buttons

Link copied to clipboard
fun MenuModalContentBody(props: MenuModalProps, modifier: Modifier = Modifier)

Public content body for MenuModal - can be used in unified modal system Contains full menu functionality: event settings, recording, media, display, etc.

Link copied to clipboard
Link copied to clipboard
fun MessagesModalContentBody(props: MessagesModalProps, selectedTab: String = "group", onTabChange: (String) -> Unit = {}, modifier: Modifier = Modifier)

Public content body for MessagesModal - can be used in unified modal system Contains full functionality: tabs, message list, send messages with permissions

Link copied to clipboard
fun ModernTheme(isDark: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit)
Link copied to clipboard

Public content body for ParticipantsModal - can be used in unified modal system Contains full functionality: filter, list, mute, message, remove participants

Link copied to clipboard
fun PollModalContentBody(props: PollModalProps, modifier: Modifier = Modifier)

Poll Modal Content Body - The main content without dialog wrapper. Can be used in unified modal system.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun RecordingModalContentBody(props: RecordingModalOptions, modifier: Modifier = Modifier, showActionButtons: Boolean = false)

Public content body for RecordingModal - can be used in unified modal system Contains full recording configuration: standard settings, advanced settings

Link copied to clipboard

RequestsModal - Displays and manages participant requests

Link copied to clipboard

Public content body for RequestsModal - can be embedded in unified modal system Provides full request management functionality without AlertDialog wrapper

Link copied to clipboard
Link copied to clipboard
fun SettingsModalContentBody(options: EventSettingsModalOptions, modifier: Modifier = Modifier, onSave: () -> Unit? = null)

Public content body for SettingsModal (Event Settings) - can be embedded in unified modal system Provides full event permission settings functionality without AlertDialog wrapper

Link copied to clipboard

Public content body for ShareEventModal - can be embedded in unified modal system Provides full share functionality without AlertDialog wrapper

Link copied to clipboard
fun Stream.toDisplayComponent(participants: List<Participant>, audioDecibels: List<AudioDecibels> = emptyList(), isVideoCard: Boolean = true, showControls: Boolean = false, currentMemberName: String? = null, currentMemberLevel: String? = null, eventType: EventType = EventType.NONE): MediaSfuUIComponent

Converts a Stream to the appropriate video/audio card component

Link copied to clipboard
fun List<Stream>.toDisplayComponents(participants: List<Participant>, audioDecibels: List<AudioDecibels> = emptyList(), isVideoCard: Boolean = true, showControls: Boolean = false, currentMemberName: String? = null, currentMemberLevel: String? = null, eventType: EventType = EventType.NONE): List<MediaSfuUIComponent>

Converts a list of streams to display components

Link copied to clipboard
fun Stream.toMiniAudioComponent(participants: List<Participant>, audioDecibels: List<AudioDecibels> = emptyList()): MiniAudio

Converts a Stream to MiniAudio component for mini view strip

Link copied to clipboard
fun UnifiedModalHeader(title: String, onBack: () -> Unit? = null, onClose: () -> Unit)
Link copied to clipboard
Link copied to clipboard

WaitingModal - Manages the waiting room for participants

Link copied to clipboard

Public content body for WaitingModal - can be embedded in unified modal system Provides full waiting room management functionality without AlertDialog wrapper

Link copied to clipboard
fun <T : Function<*>> withFunctionOverride(base: T, override: FunctionOverride<T>?): T

Applies a function override, mirroring the Flutter helper behavior.

Link copied to clipboard

Applies a component override, returning a builder that respects replacement and wrapper semantics.