import { CalendarSelectionMode, CalendarMarker, CalendarDayContext } from '../types';
/**
* Calendar - Month calendar with date selection, range selection, and custom markers.
*
* @example
* ```vue
*
*
*
*
*
*
*
*
* ```
*/
interface Props {
/** Selected date(s) - type depends on selectionMode */
modelValue?: Date | Date[] | {
start: Date;
end: Date;
} | null;
/** Selection behavior mode */
selectionMode?: CalendarSelectionMode;
/** Display month (0-11) */
month?: number;
/** Display year */
year?: number;
/** Always show 6 weeks (42 days) */
fixedWeeks?: boolean;
/** First day of week (0=Sunday, 1=Monday, etc.) */
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
/** Show days from adjacent months */
showOutsideDays?: boolean;
/** Show month navigation buttons */
showNavigation?: boolean;
/** Visual markers on specific dates */
markers?: CalendarMarker[];
/** Earliest selectable date */
minDate?: Date | string;
/** Latest selectable date */
maxDate?: Date | string;
/** Explicitly disabled dates */
disabledDates?: Array;
/** Custom disabled date logic */
isDateDisabled?: (date: Date) => boolean;
/** Locale for date formatting */
locale?: string;
}
declare function prevMonth(): void;
declare function nextMonth(): void;
declare var __VLS_1: {
month: number;
year: number;
prevMonth: typeof prevMonth;
nextMonth: typeof nextMonth;
}, __VLS_3: {
dayName: string;
index: number;
}, __VLS_5: {
day: CalendarDayContext;
};
type __VLS_Slots = {} & {
header?: (props: typeof __VLS_1) => any;
} & {
'week-day'?: (props: typeof __VLS_3) => any;
} & {
'day-content'?: (props: typeof __VLS_5) => any;
};
declare const __VLS_base: import('vue').DefineComponent any;
"update:month": (month: number) => any;
"update:year": (year: number) => any;
"day-click": (context: CalendarDayContext) => any;
navigate: (direction: "prev" | "next", month: number, year: number) => any;
}, string, import('vue').PublicProps, Readonly & Readonly<{
"onUpdate:modelValue"?: ((value: Date | Date[] | {
start: Date;
end: Date;
} | null) => any) | undefined;
"onUpdate:month"?: ((month: number) => any) | undefined;
"onUpdate:year"?: ((year: number) => any) | undefined;
"onDay-click"?: ((context: CalendarDayContext) => any) | undefined;
onNavigate?: ((direction: "prev" | "next", month: number, year: number) => any) | undefined;
}>, {
locale: string;
selectionMode: CalendarSelectionMode;
fixedWeeks: boolean;
weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
showOutsideDays: boolean;
showNavigation: boolean;
markers: CalendarMarker[];
disabledDates: Array;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
declare const __VLS_export: __VLS_WithSlots;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_WithSlots = T & {
new (): {
$slots: S;
};
};