import { BoxProps, ElementProps, Factory, MantineRadius, ModalProps, PopoverProps, StylesApiProps } from '@mantine/core'; import { ScheduleLabelsOverride } from '../../labels'; import { ScheduleEventData, ScheduleMode } from '../../types'; import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent'; export type MoreEventsDropdownType = 'popover' | 'modal'; export type MoreEventsStylesNames = 'moreEventsButton' | 'moreEventsList' | 'moreEventsDropdown'; export interface MoreEventsProps extends BoxProps, StylesApiProps, ElementProps<'button'> { /** List of events to display */ events: ScheduleEventData[]; /** Events count to use for `+X more` label */ moreEventsCount: number; /** Key of `theme.radius` or any valid CSS value to set border-radius @default theme.defaultRadius */ radius?: MantineRadius; /** Title for the Modal component, ignored if `dropdownType` is not 'modal' */ modalTitle?: string; /** Type of dropdown to use for displaying more events @default 'popover' */ dropdownType?: MoreEventsDropdownType; /** Props passed down to `Popover` component */ popoverProps?: Partial>; /** Props passed down to `Modal` component */ modalProps?: Partial>; /** Called when the dropdown is closed */ onDropdownClose?: () => void; /** Function to customize event body, `event` object is passed as first argument */ renderEventBody?: RenderEventBody; /** Function to fully customize event rendering, receives all props that would be passed to the root element including children */ renderEvent?: RenderEvent; /** Labels override */ labels?: ScheduleLabelsOverride; /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default default */ mode?: ScheduleMode; /** Called when an event inside the dropdown is clicked */ onEventClick?: (event: ScheduleEventData, e: React.MouseEvent) => void; } export type MoreEventsFactory = Factory<{ props: MoreEventsProps; ref: HTMLButtonElement; stylesNames: MoreEventsStylesNames; }>; export declare const MoreEvents: import("@mantine/core").MantineComponent<{ props: MoreEventsProps; ref: HTMLButtonElement; stylesNames: MoreEventsStylesNames; }>;