import { VNode } from 'vue'; import { SelectProps } from '../select'; import { RadioGroupProps } from '../radio'; export type DayOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6; export type DefaultWeek = '一' | '二' | '三' | '四' | '五' | '六' | '日'; export interface SelectInfo { source: 'year' | 'month' | 'date' | 'customize'; } export interface Props { value?: string | number; defaultValue?: string | number; valueFormat?: string; header?: string; display?: 'panel' | 'card'; mode?: 'month' | 'year'; startDayOfWeek?: DayOfWeek; disabledDate?: (timestamp: number) => boolean; validRange?: [string | number, string | number]; dateFormat?: (date: number, timestamp: number) => string; weekFormat?: (defaultWeek: DefaultWeek, week: number, timestamp: number) => string; monthFormat?: (month: number, timestamp: number) => string; yearSelectProps?: SelectProps; monthSelectProps?: SelectProps; modeRadioProps?: RadioGroupProps; } export interface HeaderFullSlotProps { year: number; month: number; mode: 'month' | 'year'; value: string | number | undefined; onChange: (value: string | number) => void; onTypeChange: (mode: 'month' | 'year') => void; } export interface CalendarSlots { header?: () => VNode[]; headerFull?: (props: HeaderFullSlotProps) => VNode[]; week?: (props: { defaultWeek: DefaultWeek; week: number; timestamp: number; }) => VNode[]; dateValue?: (props: DateItem) => VNode[]; dateContent?: (props: DateItem) => VNode[]; dateFull?: (props: DateItem) => VNode[]; monthValue?: (props: MonthItem) => VNode[]; monthContent?: (props: MonthItem) => VNode[]; monthFull?: (props: MonthItem) => VNode[]; } export interface DateItem { type: 'date'; dateObject: { date: number; month: number; year: number; }; timestamp: number; inCurrentMonth: boolean; isCurrentDate: boolean; } export interface MonthItem { type: 'month'; monthObject: { month: number; year: number; }; timestamp: number; isCurrent: boolean; } declare function __VLS_template(): { attrs: Partial<{}>; slots: Readonly & CalendarSlots; refs: {}; rootEl: HTMLDivElement; }; type __VLS_TemplateResult = ReturnType; declare const __VLS_component: import('vue').DefineComponent any; change: (value: string | number, dateObject?: { date: number; month: number; year: number; } | { month: number; year: number; } | undefined) => any; "update:value": (value: string | number | undefined) => any; panelChange: (value: string | number | undefined, info: { year: number; month?: number; }, mode: "month" | "year") => any; }, string, import('vue').PublicProps, Readonly & Readonly<{ onSelect?: ((value: string | number | undefined, info: SelectInfo) => any) | undefined; onChange?: ((value: string | number, dateObject?: { date: number; month: number; year: number; } | { month: number; year: number; } | undefined) => any) | undefined; "onUpdate:value"?: ((value: string | number | undefined) => any) | undefined; onPanelChange?: ((value: string | number | undefined, info: { year: number; month?: number; }, mode: "month" | "year") => any) | undefined; }>, { dateFormat: (date: number, timestamp: number) => string; header: string; mode: "month" | "year"; display: "panel" | "card"; defaultValue: string | number; startDayOfWeek: DayOfWeek; disabledDate: (timestamp: number) => boolean; valueFormat: string; validRange: [string | number, string | number]; weekFormat: (defaultWeek: DefaultWeek, week: number, timestamp: number) => string; monthFormat: (month: number, timestamp: number) => string; yearSelectProps: SelectProps; monthSelectProps: SelectProps; modeRadioProps: RadioGroupProps; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; declare const _default: __VLS_WithTemplateSlots; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };