import { ButtonProps } from '../button';
import { TNode } from '../common';
export interface TdCalendarProps {
    confirmBtn?: string | ButtonProps | TNode | null;
    firstDayOfWeek?: number;
    format?: CalendarFormatType;
    maxDate?: number | Date;
    minDate?: number | Date;
    switchMode?: 'none' | 'month' | 'year-month';
    title?: string | TNode;
    type?: 'single' | 'multiple' | 'range';
    usePopup?: boolean;
    value?: number | Date | TCalendarValue[];
    defaultValue?: number | Date | TCalendarValue[];
    modelValue?: number | Date | TCalendarValue[];
    visible?: boolean;
    onChange?: (value: Date) => void;
    onClose?: (trigger: CalendarTrigger) => void;
    onConfirm?: (value: Date) => void;
    onPanelChange?: (context: {
        year: number;
        month: number;
    }) => void;
    onScroll?: (context: {
        e: Event;
    }) => void;
    onSelect?: (value: Date) => void;
}
export declare type CalendarFormatType = (day: TDate) => TDate;
export declare type TDateType = 'selected' | 'disabled' | 'start' | 'centre' | 'end' | '';
export interface TDate {
    date: Date;
    day: number;
    type: TDateType;
    className?: string;
    prefix?: string;
    suffix?: string;
}
export declare type TCalendarValue = number | Date;
export declare type CalendarTrigger = 'close-btn' | 'confirm-btn' | 'overlay';
