import { Ref, PropType } from 'vue'; import { createNativeLocaleFormatter, Timestamp } from '../utils/Timestamp'; export interface CommonProps { modelValue: string; weekdays: number[]; dateType: 'round' | 'rounded' | 'square'; weekdayAlign: 'left' | 'center' | 'right'; dateAlign: 'left' | 'center' | 'right'; bordered: boolean; dark: boolean; noAria: boolean; noActiveDate: boolean; noHeader: boolean; noScroll: boolean; shortWeekdayLabel: boolean; noDefaultHeaderText: boolean; noDefaultHeaderBtn: boolean; minWeekdayLabel: number | string; weekdayBreakpoints: number[]; locale: string; animated: boolean; transitionPrev: string; transitionNext: string; disabledDays?: string[]; disabledBefore?: string; disabledAfter?: string; disabledWeekdays?: number[]; dragEnterFunc?: (_event: Event, _type: string, _scope: any) => boolean; dragOverFunc?: (_event: Event, _type: string, _scope: any) => boolean; dragLeaveFunc?: (_event: Event, _type: string, _scope: any) => boolean; dropFunc?: (_event: Event, _type: string, _scope: any) => boolean; selectedDates: string[] | Set; selectedStartEndDates: string[]; hoverable: boolean; focusable: boolean; focusType: ('day' | 'date' | 'weekday' | 'interval' | 'time' | 'resource' | 'task')[]; } export declare const useCommonProps: { modelValue: { type: StringConstructor; default: string; validator: (v: string) => boolean; }; weekdays: { type: () => number[]; default: () => number[]; }; dateType: { type: () => "round" | "rounded" | "square"; default: string; validator: (v: string) => boolean; }; weekdayAlign: { type: () => "left" | "center" | "right"; default: string; validator: (v: string) => boolean; }; dateAlign: { type: () => "left" | "center" | "right"; default: string; validator: (v: string) => boolean; }; bordered: BooleanConstructor; dark: BooleanConstructor; noAria: BooleanConstructor; noActiveDate: BooleanConstructor; noHeader: BooleanConstructor; noScroll: BooleanConstructor; shortWeekdayLabel: BooleanConstructor; noDefaultHeaderText: BooleanConstructor; noDefaultHeaderBtn: BooleanConstructor; minWeekdayLabel: { type: PropType; default: number; }; weekdayBreakpoints: { type: () => number[]; default: () => number[]; validator: (v: number[]) => boolean; }; locale: { type: StringConstructor; default: string; }; animated: BooleanConstructor; transitionPrev: { type: StringConstructor; default: string; }; transitionNext: { type: StringConstructor; default: string; }; disabledDays: () => string[]; disabledBefore: StringConstructor; disabledAfter: StringConstructor; disabledWeekdays: { type: () => number[]; default: () => string[] | Set; }; dragEnterFunc: PropType<(_event: Event, _type: string, _scope: any) => boolean>; dragOverFunc: PropType<(_event: Event, _type: string, _scope: any) => boolean>; dragLeaveFunc: PropType<(_event: Event, _type: string, _scope: any) => boolean>; dropFunc: PropType<(_event: Event, _type: string, _scope: any) => boolean>; selectedDates: { type: PropType>; default: () => string[] | Set; }; selectedStartEndDates: { type: () => string[]; default: () => string[]; }; hoverable: BooleanConstructor; focusable: BooleanConstructor; focusType: { type: () => ("day" | "date" | "weekday" | "interval" | "time" | "resource" | "task")[]; default: () => ("day" | "date" | "weekday" | "interval" | "time" | "resource" | "task")[]; validator: (v: string[]) => boolean; }; }; export interface CommonReturn { parsedStart: Ref; parsedEnd: Ref; dayFormatter: Ref>; weekdayFormatter: Ref>; ariaDateFormatter: Ref>; arrayHasDate: (_arr: string[], _timestamp: Timestamp) => boolean; checkDays: (_arr: string[], _timestamp: Timestamp) => { firstDay: boolean; betweenDays: boolean; lastDay: boolean; }; getRelativeClasses: (_timestamp: Timestamp, _outside?: boolean, _selectedDays?: string[], _startEndDays?: string[], _hover?: boolean) => Record; startOfWeek: (_timestamp: Timestamp) => Timestamp; endOfWeek: (_timestamp: Timestamp) => Timestamp; dayStyleDefault: ({ scope }: { scope: any; }) => {}; } export default function useCommon(props: CommonProps, { startDate, endDate, times, }: { startDate: Ref; endDate: Ref; times: { today: Timestamp; }; }): CommonReturn;