import type { PropType } from 'vue'; export interface CalendarProps { allowedDates: unknown[] | ((date: unknown) => boolean) | undefined; disabled: boolean; displayValue?: unknown; modelValue: unknown[] | undefined; max: unknown; min: unknown; showAdjacentMonths: boolean; month: number | string | undefined; weekdays: number[]; year: number | string | undefined; weeksInMonth: 'dynamic' | 'static'; firstDayOfWeek: number | string | undefined; firstDayOfYear: number | string | undefined; weekdayFormat: 'long' | 'short' | 'narrow' | undefined; 'onUpdate:modelValue': ((value: unknown[]) => void) | undefined; 'onUpdate:month': ((value: number) => void) | undefined; 'onUpdate:year': ((value: number) => void) | undefined; } export type CalendarDay = { date: Date; formatted: string; isAdjacent: boolean; isDisabled: boolean; isEnd: boolean; isHidden: boolean; isSame: boolean; isSelected: boolean; isStart: boolean; isToday: boolean; isWeekEnd: boolean; isWeekStart: boolean; isoDate: string; localized: string; month: number; year: number; }; export type CalendarWeekdays = 0 | 1 | 2 | 3 | 4 | 5 | 6; export declare const makeCalendarProps: (defaults?: Defaults | undefined) => { allowedDates: unknown extends Defaults["allowedDates"] ? PropType boolean)> : { type: PropType boolean) : unknown[] | ((date: unknown) => boolean) | Defaults["allowedDates"]>; default: unknown extends Defaults["allowedDates"] ? unknown[] | ((date: unknown) => boolean) : Defaults["allowedDates"] | NonNullable boolean)>; }; disabled: unknown extends Defaults["disabled"] ? { type: BooleanConstructor; default: null; } : Omit<{ type: BooleanConstructor; default: null; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]; }; displayValue: unknown extends Defaults["displayValue"] ? PropType : { type: PropType; default: unknown extends Defaults["displayValue"] ? unknown : {} | Defaults["displayValue"]; }; modelValue: unknown extends Defaults["modelValue"] ? PropType : { type: PropType; default: unknown extends Defaults["modelValue"] ? unknown[] : unknown[] | Defaults["modelValue"]; }; month: unknown extends Defaults["month"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["month"] ? string | number : Defaults["month"] | NonNullable; }; max: unknown extends Defaults["max"] ? PropType : { type: PropType; default: unknown extends Defaults["max"] ? unknown : {} | Defaults["max"]; }; min: unknown extends Defaults["min"] ? PropType : { type: PropType; default: unknown extends Defaults["min"] ? unknown : {} | Defaults["min"]; }; showAdjacentMonths: unknown extends Defaults["showAdjacentMonths"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["showAdjacentMonths"] ? boolean : boolean | Defaults["showAdjacentMonths"]; }; year: unknown extends Defaults["year"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["year"] ? string | number : Defaults["year"] | NonNullable; }; weekdays: unknown extends Defaults["weekdays"] ? { type: PropType; default: () => number[]; } : Omit<{ type: PropType; default: () => number[]; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["weekdays"] ? CalendarWeekdays[] : CalendarWeekdays[] | Defaults["weekdays"]; }; weeksInMonth: unknown extends Defaults["weeksInMonth"] ? { type: PropType<'dynamic' | 'static'>; default: string; } : Omit<{ type: PropType<'dynamic' | 'static'>; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["weeksInMonth"] ? "dynamic" | "static" : Defaults["weeksInMonth"] | NonNullable<"dynamic" | "static">; }; firstDayOfWeek: unknown extends Defaults["firstDayOfWeek"] ? { type: (NumberConstructor | StringConstructor)[]; default: undefined; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: undefined; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["firstDayOfWeek"] ? string | number : Defaults["firstDayOfWeek"] | NonNullable; }; firstDayOfYear: unknown extends Defaults["firstDayOfYear"] ? { type: (NumberConstructor | StringConstructor)[]; default: undefined; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: undefined; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["firstDayOfYear"] ? string | number : Defaults["firstDayOfYear"] | NonNullable; }; weekdayFormat: unknown extends Defaults["weekdayFormat"] ? PropType<"long" | "narrow" | "short" | undefined> : { type: PropType; default: unknown extends Defaults["weekdayFormat"] ? "long" | "narrow" | "short" | undefined : Defaults["weekdayFormat"] | NonNullable<"long" | "narrow" | "short" | undefined>; }; }; export declare function useCalendar(props: CalendarProps): { displayValue: import("vue").ComputedRef; daysInMonth: import("vue").ComputedRef; daysInWeek: import("vue").ComputedRef; genDays: (days: Date[], today: Date) => CalendarDay[]; model: import("vue").Ref & { readonly externalValue: unknown[] | undefined; }; weeksInMonth: import("vue").ComputedRef; weekdayLabels: import("vue").ComputedRef; weekNumbers: import("vue").ComputedRef<(number | null)[]>; }; export declare function useCalendarRange(props: Pick): { minDate: import("vue").ComputedRef; maxDate: import("vue").ComputedRef; clampDate: (date: unknown) => unknown; isInAllowedRange: (date: unknown) => boolean; };