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 MediasfuGenericOptions = { 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; }; /** * MediasfuGeneric component provides a flexible foundation for building real-time media collaboration experiences. * It supports audio/video conferencing, screen sharing, chat, polls, breakout rooms, and recording capabilities * with full WebRTC/Mediasoup integration. * * ### Key Features * - **Real-time Media**: Audio, video, and screen sharing with adaptive quality * - **Interactive Tools**: Chat, polls, breakout rooms, whiteboard * - **Recording**: Cloud recording with custom layouts and orientations * - **Flexible UI**: Complete UI override system for custom branding * - **Custom Cards**: Replace default video/audio card components * - **Seed Data**: Pre-populate state for testing or demos * - **Local Mode**: Run against local MediaSFU Community Edition server * - **MediaSFU Cloud**: Seamless integration with hosted MediaSFU service * * ### Connection Modes * 1. **MediaSFU Cloud** (default): `connectMediaSFU: true` with credentials * 2. **Community Edition**: `localLink` pointing to self-hosted server * 3. **Local UI Mode**: `useLocalUIMode: true` for offline testing * * ### Customization Options * - `customVideoCard`: Custom render function for video participants * - `customAudioCard`: Custom render function for audio-only participants * - `customMiniCard`: Custom render function for minimized cards * - `uiOverrides`: Replace entire UI components (modals, grids, controls) * - `PrejoinPage`: Custom prejoin/welcome screen * * @component * @param {MediasfuGenericOptions} props - Component properties * @returns {React.FC} MediaSFU Generic component * * @example * ```tsx * // Basic MediaSFU Cloud connection * import { MediasfuGeneric } from 'mediasfu-reactnative'; * * function App() { * return ( * * ); * } * ``` * * @example * ```tsx * // Community Edition with custom video cards * import { MediasfuGeneric } from 'mediasfu-reactnative'; * import { CustomVideoCard } from './CustomVideoCard'; * * function App() { * return ( * ( * * )} * /> * ); * } * ``` * * @example * ```tsx * // Testing with seed data and UI overrides * import { MediasfuGeneric } from 'mediasfu-reactnative'; * import { CustomMainGrid } from './CustomMainGrid'; * * function App() { * const seedData = { * member: 'John Doe', * host: 'Jane Smith', * eventType: 'conference', * participants: [ * { name: 'Jane Smith', audioID: 'audio1', videoID: 'video1' }, * { name: 'John Doe', audioID: 'audio2', videoID: '' } * ] * }; * * return ( * * ); * } * ``` */ declare const MediasfuGeneric: React.FC; export default MediasfuGeneric;