import React from 'react'; import { StyleProp, ViewStyle, TextStyle, ImageStyle } from 'react-native'; /** * Enum for overlay positions. */ type OverlayPosition = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'; /** * Options for rendering a draggable `MiniAudio` component. * * @interface MiniAudioOptions * * **Appearance:** * @property {boolean} [visible=true] Determines if the component is visible. * @property {StyleProp} [customStyle] Custom styles for the component container. * @property {string} name The name to display on the audio player. * @property {StyleProp} [nameTextStyling] Custom styles for the name text. * @property {string} [textColor='white'] The color of the text. * @property {string} imageSource The source URI for the background image. * @property {boolean} [roundedImage=false] Flag to determine if the background image should be rounded. * @property {StyleProp} [imageStyle] Custom styles for the background image. * * **Waveform & Overlay:** * @property {boolean} [showWaveform=false] Flag to show or hide the waveform animation. * @property {OverlayPosition} [overlayPosition='topLeft'] The position of the overlay on the screen. * @property {string} [barColor='red'] The color of the waveform bars. */ export interface MiniAudioOptions { visible?: boolean; customStyle?: StyleProp; name: string; showWaveform?: boolean; overlayPosition?: OverlayPosition; barColor?: string; textColor?: string; nameTextStyling?: StyleProp; imageSource: string; roundedImage?: boolean; imageStyle?: StyleProp; } export type MiniAudioType = (options: MiniAudioOptions) => JSX.Element; /** * MiniAudio renders a draggable floating audio card with an animated waveform overlay and customizable appearance. * * ### Key Features * - Pan-responder enabled for free dragging across the screen. * - Animated waveform bars synchronized with audio state. * - Configurable overlay positioning and background imagery. * - Platform-aware styling for web and mobile layouts. * * @component * @param {MiniAudioOptions} props Mini audio floating card configuration. * @returns {JSX.Element} Rendered draggable mini audio component. * * @example * ```tsx * import React from 'react'; * import { MiniAudio } from 'mediasfu-reactnative'; * * function App() { * return ( * * ); * } * * export default App; * ``` */ declare const MiniAudio: React.FC; export default MiniAudio;