import React from 'react';
import { WelcomePageOptions } from '../../components/miscComponents/WelcomePage';
import { SeedData, PreJoinPageOptions, CreateMediaSFURoomOptions, JoinMediaSFURoomOptions, JoinRoomOnMediaSFUType, CreateRoomOnMediaSFUType, CustomVideoCardType, CustomAudioCardType, CustomMiniCardType } from '../../@types/types';
export type MediasfuBroadcastOptions = {
PrejoinPage?: (options: PreJoinPageOptions | WelcomePageOptions) => React.ReactNode;
localLink?: string;
connectMediaSFU?: boolean;
credentials?: {
apiUserName: string;
apiKey: string;
};
useLocalUIMode?: boolean;
seedData?: SeedData;
useSeed?: boolean;
imgSrc?: string;
sourceParameters?: {
[key: string]: any;
};
updateSourceParameters?: (data: {
[key: string]: any;
}) => void;
returnUI?: boolean;
noUIPreJoinOptions?: CreateMediaSFURoomOptions | JoinMediaSFURoomOptions;
joinMediaSFURoom?: JoinRoomOnMediaSFUType;
createMediaSFURoom?: CreateRoomOnMediaSFUType;
customVideoCard?: CustomVideoCardType;
customAudioCard?: CustomAudioCardType;
customMiniCard?: CustomMiniCardType;
customComponent?: React.FC<{
parameters: any;
}>;
containerStyle?: object;
uiOverrides?: import('../../@types/types').MediasfuUICustomOverrides;
};
/**
* MediasfuBroadcast component provides a one-to-many streaming solution where only the host
* can broadcast audio/video to a large audience. Ideal for live streams, announcements, and
* one-way presentations.
*
* ### Key Features
* - **One-to-Many**: Only host can share audio/video (no screen share)
* - **Full Screen Host**: Host takes 100% of screen real estate
* - **View-Only Audience**: Participants can watch and chat but not broadcast
* - **High Scalability**: Optimized for large viewer counts
* - **Chat & Polls**: Audience engagement through text chat and polls
* - **Recording**: Capture broadcast for replay
* - **Custom Branding**: Override UI components and host card
*
* ### Layout Characteristics
* - Host video: 100% fullscreen
* - No participant grid (view-only mode)
* - Chat overlay optional
* - No screen sharing support
*
* ### Event Type
* Automatically sets `eventType: 'broadcast'` for one-to-many streaming mode.
*
* ### Use Cases
* - Live announcements
* - Concert/performance streaming
* - Company-wide broadcasts
* - Educational lectures (one-way)
*
* @component
* @param {MediasfuBroadcastOptions} props - Component properties
* @returns {React.ReactNode} MediaSFU Broadcast component
*
* @example
* ```tsx
* // Basic live broadcast
* import { MediasfuBroadcast } from 'mediasfu-reactnative';
*
* function App() {
* return (
*
* );
* }
* ```
*
* @example
* ```tsx
* // Branded broadcast with custom host card
* import { MediasfuBroadcast } from 'mediasfu-reactnative';
* import { BroadcastHostCard } from './BroadcastHostCard';
*
* function App() {
* return (
* (
*
* )}
* imgSrc="https://example.com/broadcast-logo.png"
* containerStyle={{
* backgroundColor: '#000'
* }}
* />
* );
* }
* ```
*
* @example
* ```tsx
* // Broadcast with custom controls and chat overlay
* import { MediasfuBroadcast } from 'mediasfu-reactnative';
* import { BroadcastControls } from './BroadcastControls';
* import { ChatOverlay } from './ChatOverlay';
*
* function App() {
* return (
*
* );
* }
* ```
*/
declare const MediasfuBroadcast: React.FC;
export default MediasfuBroadcast;