import { strings } from '@douyinfe/semi-foundation/calendar/constants'; import type { ArrayElement } from '../_base/base'; import type { BaseProps } from '../_base/baseComponent'; import type { EventObject, weekStartsOnEnum } from '@douyinfe/semi-foundation/calendar/foundation'; export interface CalendarProps extends BaseProps { displayValue?: Date; range?: Date[]; header?: React.ReactNode; events?: EventObject[]; mode?: ArrayElement; showCurrTime?: boolean; weekStartsOn?: weekStartsOnEnum; scrollTop?: number; onClick?: (e: React.MouseEvent, value: Date) => void; onClose?: (e: React.MouseEvent) => void; renderTimeDisplay?: (time: number) => React.ReactNode; markWeekend?: boolean; width?: number | string; height?: number | string; dateGridRender?: (dateString?: string, date?: Date) => React.ReactNode } export type DayCalendarProps = Omit; type DayCalendarPropsKeys = 'events' | 'displayValue' | 'showCurrTime' | 'mode' | 'dateGridRender'; export interface DayColProps extends Pick, BaseProps { scrollHeight: number; currPos: number; isWeekend: boolean; handleClick: (e: React.MouseEvent, val: [Date, number, number, number]) => void } export type MonthCalendarProps = Omit; export type RangeCalendarProps = CalendarProps; export interface TimeColProps { className?: string; renderTimeDisplay?: CalendarProps['renderTimeDisplay'] } export type WeekCalendarProps = CalendarProps;