import { default as dayjs, Dayjs } from 'dayjs/esm'; import { CalendarViewMode, CalendarType, DateItem, CalendarOptions } from './hooks/types'; import { PropType, DefineComponent, ExtractPropTypes, Ref, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue'; export interface HCalendarProps { /** 日历配置选项 */ options?: CalendarOptions; /** 日历类型 */ type?: CalendarType; } export interface HCalendarEmits { 'date-click': [date: Dayjs, dateItem: DateItem]; 'month-change': [date: Dayjs]; 'view-mode-change': [viewMode: CalendarViewMode]; } declare const _default: __VLS_WithTemplateSlots< DefineComponent; type: { type: PropType; default: CalendarType; }; options: { type: PropType; default: () => {}; }; }>, { viewMode: Ref; goToToday: () => void; nextMonth: () => void; currentMonth: Ref<{ clone: () => dayjs.Dayjs; isValid: () => boolean; year: { (): number; (value: number): dayjs.Dayjs; }; month: { (): number; (value: number): dayjs.Dayjs; }; date: { (): number; (value: number): dayjs.Dayjs; }; day: { (): 0 | 1 | 2 | 3 | 4 | 5 | 6; (value: number): dayjs.Dayjs; }; hour: { (): number; (value: number): dayjs.Dayjs; }; minute: { (): number; (value: number): dayjs.Dayjs; }; second: { (): number; (value: number): dayjs.Dayjs; }; millisecond: { (): number; (value: number): dayjs.Dayjs; }; set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs; get: (unit: dayjs.UnitType) => number; add: (value: number, unit?: dayjs.ManipulateType | undefined) => dayjs.Dayjs; subtract: (value: number, unit?: dayjs.ManipulateType | undefined) => dayjs.Dayjs; startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs; endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs; format: (template?: string | undefined) => string; diff: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: "s" | "D" | "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "milliseconds" | "seconds" | "minutes" | "hours" | "days" | "months" | "years" | "dates" | "d" | "y" | "h" | "m" | "ms" | "week" | "weeks" | "w" | "quarter" | "quarters" | "Q" | undefined, float?: boolean | undefined) => number; valueOf: () => number; unix: () => number; daysInMonth: () => number; toDate: () => Date; toJSON: () => string; toISOString: () => string; toString: () => string; utcOffset: () => number; isBefore: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; isSame: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; isAfter: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; locale: { (): string; (preset: string | ILocale, object?: Partial | undefined): dayjs.Dayjs; }; }, dayjs.Dayjs | { clone: () => dayjs.Dayjs; isValid: () => boolean; year: { (): number; (value: number): dayjs.Dayjs; }; month: { (): number; (value: number): dayjs.Dayjs; }; date: { (): number; (value: number): dayjs.Dayjs; }; day: { (): 0 | 1 | 2 | 3 | 4 | 5 | 6; (value: number): dayjs.Dayjs; }; hour: { (): number; (value: number): dayjs.Dayjs; }; minute: { (): number; (value: number): dayjs.Dayjs; }; second: { (): number; (value: number): dayjs.Dayjs; }; millisecond: { (): number; (value: number): dayjs.Dayjs; }; set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs; get: (unit: dayjs.UnitType) => number; add: (value: number, unit?: dayjs.ManipulateType | undefined) => dayjs.Dayjs; subtract: (value: number, unit?: dayjs.ManipulateType | undefined) => dayjs.Dayjs; startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs; endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs; format: (template?: string | undefined) => string; diff: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: "s" | "D" | "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "milliseconds" | "seconds" | "minutes" | "hours" | "days" | "months" | "years" | "dates" | "d" | "y" | "h" | "m" | "ms" | "week" | "weeks" | "w" | "quarter" | "quarters" | "Q" | undefined, float?: boolean | undefined) => number; valueOf: () => number; unix: () => number; daysInMonth: () => number; toDate: () => Date; toJSON: () => string; toISOString: () => string; toString: () => string; utcOffset: () => number; isBefore: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; isSame: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; isAfter: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; locale: { (): string; (preset: string | ILocale, object?: Partial | undefined): dayjs.Dayjs; }; }>; previousMonth: () => void; fullMonthDates: Ref<{ date: { clone: () => dayjs.Dayjs; isValid: () => boolean; year: { (): number; (value: number): dayjs.Dayjs; }; month: { (): number; (value: number): dayjs.Dayjs; }; date: { (): number; (value: number): dayjs.Dayjs; }; day: { (): 0 | 1 | 2 | 3 | 4 | 5 | 6; (value: number): dayjs.Dayjs; }; hour: { (): number; (value: number): dayjs.Dayjs; }; minute: { (): number; (value: number): dayjs.Dayjs; }; second: { (): number; (value: number): dayjs.Dayjs; }; millisecond: { (): number; (value: number): dayjs.Dayjs; }; set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs; get: (unit: dayjs.UnitType) => number; add: (value: number, unit?: dayjs.ManipulateType | undefined) => dayjs.Dayjs; subtract: (value: number, unit?: dayjs.ManipulateType | undefined) => dayjs.Dayjs; startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs; endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs; format: (template?: string | undefined) => string; diff: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: "s" | "D" | "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "milliseconds" | "seconds" | "minutes" | "hours" | "days" | "months" | "years" | "dates" | "d" | "y" | "h" | "m" | "ms" | "week" | "weeks" | "w" | "quarter" | "quarters" | "Q" | undefined, float?: boolean | undefined) => number; valueOf: () => number; unix: () => number; daysInMonth: () => number; toDate: () => Date; toJSON: () => string; toISOString: () => string; toString: () => string; utcOffset: () => number; isBefore: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; isSame: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; isAfter: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; locale: { (): string; (preset: string | ILocale, object?: Partial | undefined): dayjs.Dayjs; }; }; isCurrentMonth: boolean; isToday: boolean; dateString: string; isBefore: boolean; isEmpty?: boolean | undefined; }[], DateItem[] | { date: { clone: () => dayjs.Dayjs; isValid: () => boolean; year: { (): number; (value: number): dayjs.Dayjs; }; month: { (): number; (value: number): dayjs.Dayjs; }; date: { (): number; (value: number): dayjs.Dayjs; }; day: { (): 0 | 1 | 2 | 3 | 4 | 5 | 6; (value: number): dayjs.Dayjs; }; hour: { (): number; (value: number): dayjs.Dayjs; }; minute: { (): number; (value: number): dayjs.Dayjs; }; second: { (): number; (value: number): dayjs.Dayjs; }; millisecond: { (): number; (value: number): dayjs.Dayjs; }; set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs; get: (unit: dayjs.UnitType) => number; add: (value: number, unit?: dayjs.ManipulateType | undefined) => dayjs.Dayjs; subtract: (value: number, unit?: dayjs.ManipulateType | undefined) => dayjs.Dayjs; startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs; endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs; format: (template?: string | undefined) => string; diff: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: "s" | "D" | "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "milliseconds" | "seconds" | "minutes" | "hours" | "days" | "months" | "years" | "dates" | "d" | "y" | "h" | "m" | "ms" | "week" | "weeks" | "w" | "quarter" | "quarters" | "Q" | undefined, float?: boolean | undefined) => number; valueOf: () => number; unix: () => number; daysInMonth: () => number; toDate: () => Date; toJSON: () => string; toISOString: () => string; toString: () => string; utcOffset: () => number; isBefore: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; isSame: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; isAfter: (date?: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean; locale: { (): string; (preset: string | ILocale, object?: Partial | undefined): dayjs.Dayjs; }; }; isCurrentMonth: boolean; isToday: boolean; dateString: string; isBefore: boolean; isEmpty?: boolean | undefined; }[]>; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { "date-click": (date: dayjs.Dayjs, dateItem: DateItem) => void; "month-change": (date: dayjs.Dayjs) => void; "view-mode-change": (viewMode: CalendarViewMode) => void; }, string, PublicProps, Readonly< ExtractPropTypes<{ selectedDate: PropType; type: { type: PropType; default: CalendarType; }; options: { type: PropType; default: () => {}; }; }>> & Readonly<{ "onDate-click"?: ((date: dayjs.Dayjs, dateItem: DateItem) => any) | undefined; "onMonth-change"?: ((date: dayjs.Dayjs) => any) | undefined; "onView-mode-change"?: ((viewMode: CalendarViewMode) => any) | undefined; }>, { type: CalendarType; options: CalendarOptions; }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, { "date-cell"?(_: { dateItem: DateItem; }): any; }>; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };