import { validateNumber, validateTime } from '../util/timestamp.js'; import type { PropType, StyleValue } from 'vue'; import type { CalendarBaseProps } from './calendarBase.js'; import type { CalendarDayBodySlotScope, CalendarFormatter, CalendarTimestamp } from '../types.js'; import type { VTime } from '../util/timestamp.js'; export declare const makeCalendarWithIntervalsProps: (defaults?: Defaults | undefined) => { maxDays: unknown extends Defaults["maxDays"] ? { type: NumberConstructor; default: number; } : Omit<{ type: NumberConstructor; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["maxDays"] ? number : number | Defaults["maxDays"]; }; intervalHeight: unknown extends Defaults["intervalHeight"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["intervalHeight"] ? string | number : Defaults["intervalHeight"] | NonNullable; }; intervalWidth: unknown extends Defaults["intervalWidth"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["intervalWidth"] ? string | number : Defaults["intervalWidth"] | NonNullable; }; intervalMinutes: unknown extends Defaults["intervalMinutes"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["intervalMinutes"] ? string | number : Defaults["intervalMinutes"] | NonNullable; }; firstInterval: unknown extends Defaults["firstInterval"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["firstInterval"] ? string | number : Defaults["firstInterval"] | NonNullable; }; firstTime: unknown extends Defaults["firstTime"] ? { type: PropType; validate: typeof validateTime; } : Omit<{ type: PropType; validate: typeof validateTime; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["firstTime"] ? VTime : Defaults["firstTime"] | NonNullable; }; intervalCount: unknown extends Defaults["intervalCount"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; validate: typeof validateNumber; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["intervalCount"] ? string | number : Defaults["intervalCount"] | NonNullable; }; intervalFormat: unknown extends Defaults["intervalFormat"] ? { type: PropType; default: null; } : Omit<{ type: PropType; default: null; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["intervalFormat"] ? CalendarFormatter : CalendarFormatter | Defaults["intervalFormat"]; }; intervalStyle: unknown extends Defaults["intervalStyle"] ? { type: PropType<(interval: CalendarTimestamp) => StyleValue>; default: null; } : Omit<{ type: PropType<(interval: CalendarTimestamp) => StyleValue>; default: null; }, "default" | "type"> & { type: PropType StyleValue : ((interval: CalendarTimestamp) => StyleValue) | Defaults["intervalStyle"]>; default: unknown extends Defaults["intervalStyle"] ? (interval: CalendarTimestamp) => StyleValue : ((interval: CalendarTimestamp) => StyleValue) | Defaults["intervalStyle"]; }; showIntervalLabel: unknown extends Defaults["showIntervalLabel"] ? { type: PropType<(interval: CalendarTimestamp) => boolean>; default: null; } : Omit<{ type: PropType<(interval: CalendarTimestamp) => boolean>; default: null; }, "default" | "type"> & { type: PropType boolean : ((interval: CalendarTimestamp) => boolean) | Defaults["showIntervalLabel"]>; default: unknown extends Defaults["showIntervalLabel"] ? (interval: CalendarTimestamp) => boolean : ((interval: CalendarTimestamp) => boolean) | Defaults["showIntervalLabel"]; }; }; interface CalendarWithIntervalsProps extends CalendarBaseProps { maxDays: number; intervalHeight: string | number; intervalMinutes: string | number; firstInterval: string | number; firstTime: VTime | undefined; intervalCount: string | number; intervalFormat: CalendarFormatter | string | undefined; } export declare function useCalendarWithIntervals(props: CalendarWithIntervalsProps): { 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?: import("../types.js").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?: import("../types.js").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; 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) => CalendarFormatter; updateTimes: () => void; scrollAreaRef: import("vue").ShallowRef; parsedFirstInterval: import("vue").ComputedRef; parsedIntervalMinutes: import("vue").ComputedRef; parsedIntervalCount: import("vue").ComputedRef; parsedIntervalHeight: import("vue").ComputedRef; parsedFirstTime: import("vue").ComputedRef; firstMinute: import("vue").ComputedRef; bodyHeight: import("vue").ComputedRef; days: import("vue").ComputedRef; intervals: import("vue").ComputedRef; intervalFormatter: import("vue").ComputedRef; showIntervalLabelDefault: (interval: CalendarTimestamp) => boolean; intervalStyleDefault: (_interval: CalendarTimestamp) => StyleValue; getTimestampAtEvent: (e: Event, day: CalendarTimestamp) => CalendarTimestamp; getSlotScope: (timestamp: CalendarTimestamp) => CalendarDayBodySlotScope; scrollToTime: (time: VTime) => boolean; minutesToPixels: (minutes: number) => number; timeToY: (time: VTime | CalendarTimestamp, targetDateOrClamp?: CalendarTimestamp | boolean) => number | false; timeDelta: (time: VTime | CalendarTimestamp, targetDate?: CalendarTimestamp) => number | false; };