import { ReactElement, ForwardRefExoticComponent, RefAttributes, SetStateAction, RefObject, Dispatch, ReactNode, FC } from 'react'; import { AlignmentPoint } from '@syncfusion/react-popups'; import { SchedulerCellClickEvent, EventModel } from '../../types/scheduler-types'; /** * Shared utility function to render close button for popups * * @param {Function} onClose The close handler function * @param {string} ariaLabel The aria-label for accessibility (default: 'Close') * @returns {ReactElement} The close button element */ export declare const renderPopupCloseButton: (onClose: () => void, ariaLabel?: string) => ReactElement; /** * Props interface for PopupWrapper component * * @private */ export interface PopupWrapperProps { visible: boolean; target: HTMLElement | null; popupAlign?: AlignmentPoint; anchorAlign?: AlignmentPoint; schedulerElement: RefObject; onClose: () => void; onOpen?: () => void; children: ReactNode; adaptive: boolean; } /** * Shared popup wrapper component * * @param {PopupWrapperProps} props - The component props * @returns {ReactElement | null} The popup wrapper */ export declare const PopupWrapper: FC; /** * Shared popup utility function type for creating base imperative handle methods * * @private */ export interface BaseImperativeHandleMethods { show: () => void; hide: () => void; element: HTMLDivElement | null; } /** * Shared utility function to create base imperative handle methods * * @param {Function} setVisible The setVisible function * @param {Object} popupElement The popup element ref * @returns {BaseImperativeHandleMethods} The base imperative handle methods */ export declare const createBaseImperativeHandle: (setVisible: Dispatch>, popupElement: RefObject) => BaseImperativeHandleMethods; /** * Base interface for scheduler popup components * * @private */ export interface ISchedulerPopupBase { /** * Show the popup */ show: () => void; /** * Hide the popup */ hide: () => void; /** * Focus the popup (optional - only needed for components with focusable elements) */ focus?: () => void; /** * The popup DOM element */ element: HTMLDivElement | null; } /** * Interface for the QuickInfoPopup component * * @private */ export interface IQuickInfoPopup extends ISchedulerPopupBase { /** * Handle cell click to show popup */ handleCellClick: (data: SchedulerCellClickEvent, element: HTMLElement) => void; /** * Handle event click to show popup */ handleEventClick: (data: EventModel, element: HTMLElement) => void; /** * Trigger the popup's delete action (imperative) */ handleDelete: () => void; } /** * Props for the QuickInfoPopup component * * @private */ export interface QuickInfoPopupProps { onClose?: () => void; onEditEvent: (eventData: EventModel) => void; onMoreDetails: (cellData: SchedulerCellClickEvent) => void; } /** * Combined QuickInfoPopup component that handles both cell and event popups */ export declare const QuickInfoPopup: ForwardRefExoticComponent>; export default QuickInfoPopup;