import { type LocaleTranslate } from '../../locale'; import { type Bem } from '../../utils'; import { type DefaultProps } from '../config'; import type { StyleValue } from 'vue'; export type CalendarType = 'single' | 'multiple' | 'range'; export interface CalendarDay { date: Date; disabled: boolean; type: 'same' | 'start' | 'middle' | 'end' | 'selected' | 'normal'; today: boolean; top: string; text: string | number; bottom: string; className?: string; style?: StyleValue; } export interface CalendarProps { type?: CalendarType; modelValue?: Date | Date[] | string | string[]; min?: Date; max?: Date; currentDate?: Date; disabledDate?: (date: Date) => boolean; maxDays?: number; overMaxDays?: () => void; weekStartsOn?: number; formatter?: (day: CalendarDay) => void; allowSameDay?: boolean; severalMonths?: boolean; valueFormat?: string; startDateText?: string; endDateText?: string; sameDateText?: string; } export declare const defaultCalendarProps: DefaultProps; export interface CalendarEmits { (e: 'update:modelValue', value: Date | Date[] | string | string[]): void; (e: 'change', value: Date | Date[] | string | string[]): void; } export interface CalendarMonthProps { year: number; month: number; type: CalendarType; minDate: Date; maxDate: Date; currentDates: Date[]; formatter?: (day: CalendarDay) => void; disabledDate?: (date: Date) => boolean; todayNumber: number; weekStartsOn: number; severalMonths?: boolean; t: LocaleTranslate; bem: Bem; startDateText?: string; endDateText?: string; sameDateText?: string; } export interface CalendarMonthEmits { (e: 'day-click', date: Date): void; } export declare const getMinDate: (severalMonths?: boolean) => Date; export declare const getMaxDate: (severalMonths?: boolean) => Date; export declare const sortDates: (dates: Date[]) => Date[]; export declare const weeksIndex: number[];