import React from 'react'; import { StyleProp, ViewStyle, ImageStyle } from 'react-native'; import { CustomMiniCardType } from '../../@types/types'; /** * Options for rendering a `MiniCard`. * * @interface MiniCardOptions * * **Appearance:** * @property {string} [initials] Fallback initials when no image is provided. * @property {number} [fontSize=14] Font size for initials. * @property {StyleProp} [customStyle] Styling for the inner card surface. * @property {StyleProp} [style] Styling applied to the outer wrapper. * * **Imagery:** * @property {string} [imageSource] Optional avatar URL. * @property {boolean} [roundedImage=true] Whether to round the avatar image. * @property {StyleProp} [imageStyle] Additional avatar styling. * * **Badges:** * @property {boolean} [showVideoIcon] Indicates video availability. * @property {boolean} [showAudioIcon] Indicates audio availability. * @property {string} [name] Participant name associated with the card. * * **Customization:** * @property {CustomMiniCardType} [customMiniCard] Override for the default mini card presentation. * @property {any} [parameters] Additional data forwarded to custom renderers. * * **Advanced Render Overrides:** * @property {(options: { defaultContent: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContent] * Override the internal card structure. * @property {(options: { defaultContainer: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContainer] * Override the surrounding container implementation. */ export interface MiniCardOptions { initials?: string; fontSize?: number; customStyle?: StyleProp; imageSource?: string; roundedImage?: boolean; imageStyle?: StyleProp; showVideoIcon?: boolean; showAudioIcon?: boolean; name?: string; customMiniCard?: CustomMiniCardType; parameters?: any; 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 MiniCardType = (options: MiniCardOptions) => JSX.Element; /** * MiniCard displays a compact avatar block using either initials or an image and exposes override hooks for * complete customization. It is commonly used as a fallback for video/audio cards and participant badges. * * ### Key Features * - Displays initials or avatar imagery with optional rounded styling. * - Supports custom renderers for fully bespoke layouts. * - Emits optional audio/video badges via icon flags. * * @param {MiniCardOptions} props Mini card configuration. * @returns {JSX.Element} Rendered mini card. */ declare const MiniCard: React.FC; export default MiniCard;