import { ReactNode } from 'react';
import { BaseProps } from '../../base/props';
export interface CalendarCardDay {
    type?: 'prev' | 'current' | 'next';
    year: number;
    month: number;
    date: number;
}
export interface CalendarCardMonth {
    year: number;
    month: number;
}
export type CalendarCardValue = Date | Date[] | null;
export type CalendarCardRef = {
    jump: (step: number) => void;
    jumpTo: (year: number, month: number) => void;
};
export interface BaseCalendarCard extends BaseProps {
    /**
    * 类型，单个日期 single，多个日期 multiple，日期范围 range，周选择 week
    */
    type: 'single' | 'multiple' | 'range' | 'week'
    /**
    * 自定义标题
    */
    title: ReactNode
    /**
    * 受控模式下的值，与 onChange 搭配使用
    */
    value: CalendarCardValue
    /**
    * 默认值，单个日期 Date 格式，多个日期/范围选择 Date[] 格式
    */
    defaultValue: CalendarCardValue
    /**
    * 设置周起始日，0 为周日，1 为周一
    */
    firstDayOfWeek: number
    /**
    * 限制范围开始日期
    */
    startDate: Date
    /**
    * 限制范围结束日期
    */
    endDate: Date
    weekdays?: string[];
    /**
    * 设置不可选日期
    */
    disableDay: (day: CalendarCardDay) => boolean
    /**
    * 日期信息
    */
    renderDay: (day: CalendarCardDay) => ReactNode
    /**
    * 日期顶部信息
    */
    renderDayTop: (day: CalendarCardDay) => ReactNode
    /**
    * 日期底部信息
    */
    renderDayBottom: (day: CalendarCardDay) => ReactNode
    /**
    * 点击后触发
    */
    onDayClick: (day: CalendarCardDay) => void
    /**
    * 切换月份时触发
    */
    onPageChange: (data: CalendarCardMonth) => void
    /**
    * 选择值发生变化时触发
    */
    onChange: (value: CalendarCardValue) => void
}
