import React from 'react'; import { StyleProp, ViewStyle, ImageStyle } from 'react-native'; /** * Enum for Overlay Positions. */ type OverlayPosition = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'; /** * Options for rendering a `MiniCardAudio`. * * @interface MiniCardAudioOptions * * **Appearance:** * @property {StyleProp} [customStyle] Additional styling for the audio card body. * @property {StyleProp} [style] Styling applied to the outer wrapper. * @property {string} name Participant label text. * @property {string} [imageSource] Optional background image. * @property {boolean} [roundedImage=false] Whether the image should be rounded. * @property {StyleProp} [imageStyle] Extra styling for the background image. * * **Waveform & Overlay:** * @property {boolean} showWaveform Toggles waveform animation visibility. * @property {OverlayPosition} [overlayPosition='topLeft'] Overlay anchor for the name/waveform row. * @property {string} [barColor='white'] Waveform bar color. * @property {string} [textColor='white'] Participant text color. * * **Advanced Render Overrides:** * @property {(options: { defaultContent: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContent] * Override for the internal layout. * @property {(options: { defaultContainer: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContainer] * Override for the outer container. */ export interface MiniCardAudioOptions { customStyle?: StyleProp; name: string; showWaveform: boolean; overlayPosition?: OverlayPosition; barColor?: string; textColor?: string; imageSource?: string; roundedImage?: boolean; imageStyle?: StyleProp; 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 MiniCardAudioType = (options: MiniCardAudioOptions) => JSX.Element; /** * MiniCardAudio renders a compact audio badge with optional waveform animation. It is ideal for spotlighting * speaking participants in grid layouts or mini overlays. * * ### Key Features * - Animated waveform synchronized via `Animated` API. * - Overlay positioning helper for name/waveform cluster. * - Supports background imagery with optional rounded styling. * * @param {MiniCardAudioOptions} props Audio mini card configuration. * @returns {JSX.Element} Rendered audio mini card. */ declare const MiniCardAudio: React.FC; export default MiniCardAudio;