import React from 'react'; import { StyleProp, ViewStyle } from 'react-native'; /** * Interface defining the props for the MainGridComponent. */ /** * Options for rendering `MainGridComponent`. * * @interface MainGridComponentOptions * * **Content:** * @property {React.ReactNode} children Elements rendered inside the primary grid. * * **Appearance:** * @property {string} backgroundColor Background color of the root grid container. * @property {number} height Pixel height of the grid. * @property {number} width Pixel width of the grid. * @property {boolean} [showAspect=true] Controls visibility of the grid shell. * @property {StyleProp} [style] Additional styling for the container. * * **Timer:** * @property {boolean} [showTimer=true] Toggles display of the meeting progress timer. * @property {string} meetingProgressTime Stringified duration shown on the timer. * @property {string} [timeBackgroundColor] Optional background color passed to the timer. * * **Advanced Render Overrides:** * @property {(options: { defaultContent: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContent] * Customize the internal content layout. * @property {(options: { defaultContainer: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContainer] * Replace the outer grid wrapper. */ export interface MainGridComponentOptions { children: React.ReactNode; backgroundColor: string; height: number; width: number; showAspect?: boolean; timeBackgroundColor?: string; showTimer?: boolean; meetingProgressTime: string; style?: StyleProp; renderContent?: (options: { defaultContent: JSX.Element; dimensions: { width: number; height: number; }; }) => JSX.Element; renderContainer?: (options: { defaultContainer: JSX.Element; dimensions: { width: number; height: number; }; }) => JSX.Element; } export type MainGridComponentType = (options: MainGridComponentOptions) => JSX.Element; /** * MainGridComponent renders the primary on-stage grid and optionally overlays the meeting progress timer. Consumers can swap the * inner or outer layout through render overrides. * * ### Key Features * - Houses the main video/audio grid for active participants * - Optionally displays meeting progress timer overlay * - Supports custom timer background color * - Toggle visibility with `showAspect` * - Exposes render overrides for content and container * * ### Layout * - Fixed dimensions provided via `width` and `height` props * - Timer positioned absolutely in top-right corner * - Children fill the container with flex layout * * ### Accessibility * - Timer includes accessible time display * - Grid container provides structural grouping * * @example * ```tsx * // Basic main grid with timer * * * * ``` * * @example * ```tsx * // Hidden timer with custom background * * * * ``` * * @example * ```tsx * // With custom content layout * ( * * {defaultContent} * * * )} * > * * * ``` */ declare const MainGridComponent: React.FC; export default MainGridComponent;