import type { PropType, VNode } from 'vue'; import type { CalendarBaseProps } from './calendarBase.js'; import type { CalendarCategory, CalendarDayBodySlotScope, CalendarDaySlotScope, CalendarEvent, CalendarEventCategoryFunction, CalendarEventColorFunction, CalendarEventNameFunction, CalendarEventOverlapMode, CalendarEventParsed, CalendarEventTimedFunction, CalendarEventVisual, CalendarTimestamp } from '../types.js'; type VDailyEventsMap = { [date: string]: { parent: HTMLElement; more: HTMLElement | null; events: HTMLElement[]; }; }; export interface VEventScopeInput { eventParsed: CalendarEventParsed; day: CalendarDaySlotScope; start: boolean; end: boolean; timed: boolean; } export declare const makeCalendarWithEventsProps: (defaults?: Defaults | undefined) => { events: unknown extends Defaults["events"] ? { type: PropType; default: () => never[]; } : Omit<{ type: PropType; default: () => never[]; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["events"] ? CalendarEvent[] : CalendarEvent[] | Defaults["events"]; }; eventStart: unknown extends Defaults["eventStart"] ? { type: StringConstructor; default: string; } : Omit<{ type: StringConstructor; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventStart"] ? string : string | Defaults["eventStart"]; }; eventEnd: unknown extends Defaults["eventEnd"] ? { type: StringConstructor; default: string; } : Omit<{ type: StringConstructor; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventEnd"] ? string : string | Defaults["eventEnd"]; }; eventTimed: unknown extends Defaults["eventTimed"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventTimed"] ? string | CalendarEventTimedFunction : Defaults["eventTimed"] | NonNullable; }; eventCategory: unknown extends Defaults["eventCategory"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventCategory"] ? string | CalendarEventCategoryFunction : Defaults["eventCategory"] | NonNullable; }; eventHeight: unknown extends Defaults["eventHeight"] ? { type: NumberConstructor; default: number; } : Omit<{ type: NumberConstructor; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventHeight"] ? number : number | Defaults["eventHeight"]; }; eventColor: unknown extends Defaults["eventColor"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventColor"] ? string | CalendarEventColorFunction : Defaults["eventColor"] | NonNullable; }; eventTextColor: unknown extends Defaults["eventTextColor"] ? { type: PropType; } : Omit<{ type: PropType; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventTextColor"] ? string | CalendarEventColorFunction : Defaults["eventTextColor"] | NonNullable; }; eventName: unknown extends Defaults["eventName"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventName"] ? string | CalendarEventNameFunction : Defaults["eventName"] | NonNullable; }; eventOverlapThreshold: unknown extends Defaults["eventOverlapThreshold"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventOverlapThreshold"] ? string | number : Defaults["eventOverlapThreshold"] | NonNullable; }; eventOverlapMode: unknown extends Defaults["eventOverlapMode"] ? { type: PropType<'stack' | 'column' | CalendarEventOverlapMode>; default: string; validate: (mode: any) => boolean; } : Omit<{ type: PropType<'stack' | 'column' | CalendarEventOverlapMode>; default: string; validate: (mode: any) => boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventOverlapMode"] ? "column" | "stack" | CalendarEventOverlapMode : Defaults["eventOverlapMode"] | NonNullable<"column" | "stack" | CalendarEventOverlapMode>; }; eventMore: unknown extends Defaults["eventMore"] ? { type: BooleanConstructor; default: boolean; } : Omit<{ type: BooleanConstructor; default: boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventMore"] ? boolean : boolean | Defaults["eventMore"]; }; eventMoreText: unknown extends Defaults["eventMoreText"] ? { type: StringConstructor; default: string; } : Omit<{ type: StringConstructor; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventMoreText"] ? string : string | Defaults["eventMoreText"]; }; eventRipple: unknown extends Defaults["eventRipple"] ? { type: (BooleanConstructor | ObjectConstructor)[]; default: null; } : Omit<{ type: (BooleanConstructor | ObjectConstructor)[]; default: null; }, "default" | "type"> & { type: PropType : boolean | Record | Defaults["eventRipple"]>; default: unknown extends Defaults["eventRipple"] ? boolean | Record : Defaults["eventRipple"] | NonNullable>; }; eventMarginBottom: unknown extends Defaults["eventMarginBottom"] ? { type: NumberConstructor; default: number; } : Omit<{ type: NumberConstructor; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["eventMarginBottom"] ? number : number | Defaults["eventMarginBottom"]; }; }; interface CalendarWithEventsProps extends CalendarBaseProps { events: CalendarEvent[]; eventStart: string; eventEnd: string; eventTimed: string | CalendarEventTimedFunction; eventCategory: string | CalendarEventCategoryFunction; eventHeight: number; eventColor: string | CalendarEventColorFunction; eventTextColor: string | CalendarEventColorFunction | undefined; eventName: string | CalendarEventNameFunction; eventOverlapThreshold: string | number; eventOverlapMode: string | CalendarEventOverlapMode; eventMore: boolean; eventMoreText: string; eventRipple: boolean | object | null | undefined; eventMarginBottom: number; type: 'month' | 'week' | 'day' | '4day' | 'custom-weekly' | 'custom-daily' | 'category'; } export declare function useCalendarWithEvents(props: CalendarWithEventsProps, slots: any, attrs: any): { times: { now: { date: string; time: string; year: number; month: number; day: number; weekday: number; hour: number; minute: number; hasDay: boolean; hasTime: boolean; past: boolean; present: boolean; future: boolean; category?: CalendarCategory; }; today: { date: string; time: string; year: number; month: number; day: number; weekday: number; hour: number; minute: number; hasDay: boolean; hasTime: boolean; past: boolean; present: boolean; future: boolean; category?: CalendarCategory; }; }; locale: { name: string; decimalSeparator: import("vue").ShallowRef; messages: import("vue").Ref; current: import("vue").Ref; fallback: import("vue").Ref; t: (key: string, ...params: unknown[]) => string; n: (value: number) => string; provide: (props: import("../../../types.js").LocaleOptions) => import("../../../types.js").LocaleInstance; isRtl: import("vue").Ref; rtl: import("vue").Ref, Record>; rtlClasses: import("vue").Ref; }; parsedValue: import("vue").ComputedRef; parsedWeekdays: import("vue").ComputedRef; effectiveWeekdays: import("vue").ComputedRef; weekdaySkips: import("vue").ComputedRef; parsedStart: import("vue").ComputedRef; parsedEnd: import("vue").ComputedRef; days: import("vue").ComputedRef; dayFormatter: import("vue").ComputedRef; weekdayFormatter: import("vue").ComputedRef; getColorProps: (colors: { background?: import("../../../composables/color.js").ColorValue; text?: import("../../../composables/color.js").ColorValue; }) => { class: string[]; style: import("vue").CSSProperties; }; getRelativeClasses: (timestamp: CalendarTimestamp, outside?: boolean) => { 'v-present': boolean; 'v-past': boolean; 'v-future': boolean; 'v-outside': boolean; }; getWeekNumber: (timestamp: CalendarTimestamp) => number; getStartOfWeek: (timestamp: CalendarTimestamp) => CalendarTimestamp; getEndOfWeek: (timestamp: CalendarTimestamp) => CalendarTimestamp; getFormatter: (options: Intl.DateTimeFormatOptions) => import("../types.js").CalendarFormatter; updateTimes: () => void; noEvents: import("vue").ComputedRef; parsedEvents: import("vue").ComputedRef; parsedEventOverlapThreshold: import("vue").ComputedRef; eventTimedFunction: import("vue").ComputedRef; eventCategoryFunction: import("vue").ComputedRef; eventTextColorFunction: import("vue").ComputedRef; eventNameFunction: import("vue").ComputedRef; eventModeFunction: import("vue").ComputedRef; eventWeekdays: import("vue").ComputedRef; categoryMode: import("vue").ComputedRef; eventColorFunction: (e: CalendarEvent) => string | undefined; eventsRef: import("vue").Ref; updateEventVisibility: () => void; getEventsMap: () => VDailyEventsMap; genDayEvent: ({ event }: CalendarEventVisual, day: CalendarDaySlotScope) => VNode; genTimedEvent: ({ event, left, width }: CalendarEventVisual, day: CalendarDayBodySlotScope) => VNode | false; genEvent: (event: CalendarEventParsed, scopeInput: VEventScopeInput, timedEvent: boolean, data: Record) => VNode; genName: (eventSummary: () => string | VNode) => VNode; genPlaceholder: (day: CalendarTimestamp) => VNode; genMore: (day: CalendarDaySlotScope) => VNode; getVisibleEvents: () => CalendarEventParsed[]; isEventForCategory: (event: CalendarEventParsed, category: CalendarCategory) => boolean; getEventsForDay: (day: CalendarDaySlotScope) => CalendarEventParsed[]; getEventsForDayAll: (day: CalendarDaySlotScope) => CalendarEventParsed[]; getEventsForDayTimed: (day: CalendarDaySlotScope) => CalendarEventParsed[]; getScopedSlots: () => any; };