import React from 'react'; import { StyleProp, ViewStyle } from 'react-native'; import { EventType } from '../../@types/types'; /** * Options for configuring `ShareEventModal`. * * @interface ShareEventModalOptions * * **Modal Control:** * @property {boolean} isShareEventModalVisible Controls modal visibility. * @property {() => void} onShareEventClose Callback fired when closing the modal. * * **Appearance:** * @property {string} [backgroundColor='rgba(255, 255, 255, 0.25)'] Card background color. * @property {'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'center'} [position='topRight'] * Anchor location for the modal. * @property {StyleProp} [style] Additional container styling. * * **Share Content:** * @property {boolean} [shareButtons=true] Determines if share buttons are displayed. * @property {string} roomName Meeting identifier displayed in the modal. * @property {string} [adminPasscode] Optional admin passcode. * @property {string} [islevel] Current user level (e.g., `'2'` for admins). * @property {EventType} eventType Meeting type used by share buttons. * @property {string} [localLink] Optional vanity link for local deployments. * * **Advanced Render Overrides:** * @property {(options: { defaultContent: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContent] * Overrides the inner modal layout. * @property {(options: { defaultContainer: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContainer] * Overrides the surrounding container implementation. */ export interface ShareEventModalOptions { backgroundColor?: string; isShareEventModalVisible: boolean; onShareEventClose: () => void; shareButtons?: boolean; position?: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'center'; roomName: string; adminPasscode?: string; islevel?: string; eventType: EventType; localLink?: 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 ShareEventModalType = (options: ShareEventModalOptions) => JSX.Element; /** * ShareEventModal exposes room identifiers, admin passcodes, and share buttons so hosts can * distribute join details quickly. It supports corner positioning, theming, and override hooks * for custom layouts. * * ### Key Features * - Displays meeting ID and optional admin passcode. * - Integrates share shortcuts tailored to `eventType`. * - Supports compact corner placement with scrollable content. * - Offers render overrides and `StyleProp`-driven styling for complete control. * * ### Accessibility * - Close button includes assistive label for screen readers. * - ScrollView content remains keyboard accessible. * * @param {ShareEventModalOptions} props Modal configuration options. * @returns {JSX.Element} Rendered share modal. * * @example Basic usage with share buttons enabled. * ```tsx * * ``` * * @example Custom container with animation. * ```tsx * ( * {defaultContainer} * )} * /> * ``` */ declare const ShareEventModal: React.FC; export default ShareEventModal;