import { Ref, EmitFn, ComputedRef, PropType } from 'vue'; import { type Timestamp } from '@timestamp-js/core'; import { CommonProps } from './useCommon'; import { CellWidthProps } from './useCellWidth'; import { Scope } from './useInterval'; export interface MonthProps { dayHeight: number | string; dayMinHeight: number | string; dayStyle?: (_scope: Scope) => any; dayClass?: (_scope: Scope) => string; weekdayStyle?: (_scope: Scope) => any; weekdayClass?: (_scope: Scope) => string; dayPadding?: string; minWeeks: number | string; shortMonthLabel: boolean; showWorkWeeks: boolean; showMonthLabel: boolean; showDayOfYearLabel: boolean; enableOutsideDays: boolean; noOutsideDays: boolean; hover: boolean; miniMode?: boolean | 'auto'; breakpoint: number | string; monthLabelSize: string; } export declare const useMonthProps: { /** * Height in pixels or CSS units for each month day cell. * * @category layout */ dayHeight: { type: (StringConstructor | NumberConstructor)[]; default: number; validator: (v: any) => boolean; }; /** * Minimum height in pixels or CSS units for each month day cell. * * @category layout */ dayMinHeight: { type: (StringConstructor | NumberConstructor)[]; default: number; validator: (v: any) => boolean; }; /** * Function that returns inline styles for month day cells. * * @category style */ dayStyle: PropType; /** * Function that returns CSS classes for month day cells. * * @category style */ dayClass: PropType; /** * Function that returns inline styles for weekday header cells. * * @category style */ weekdayStyle: PropType; /** * Function that returns CSS classes for weekday header cells. * * @category style */ weekdayClass: PropType; /** * Padding applied inside month day cells. * * @category layout */ dayPadding: StringConstructor; /** * Minimum number of weeks rendered by the month display. * * @category layout */ minWeeks: { type: (StringConstructor | NumberConstructor)[]; default: number; validator: (v: any) => boolean; }; /** * Uses shortened month labels. * * @category display */ shortMonthLabel: BooleanConstructor; /** * Shows ISO work week labels. * * @category display */ showWorkWeeks: BooleanConstructor; /** * Shows the month label. * * @category display */ showMonthLabel: { type: BooleanConstructor; default: boolean; }; /** * Shows the day-of-year label for each day. * * @category display */ showDayOfYearLabel: BooleanConstructor; /** * Enables rendering days outside the active month. * * @category display */ enableOutsideDays: BooleanConstructor; /** * Hides days outside the active month. * * @category display */ noOutsideDays: BooleanConstructor; /** * Enables hover behavior tracking for month day cells. * * @category behavior */ hover: BooleanConstructor; /** * Forces mini mode or lets mini mode follow the configured breakpoint. * * @category layout */ miniMode: { type: PropType; validator: (v: any) => boolean; }; /** * Breakpoint used when `mini-mode` is set to `auto`. * * @category layout */ breakpoint: { type: (StringConstructor | NumberConstructor)[]; default: string; validator: (v: any) => boolean; }; /** * Size token used for month labels. * * @category style */ monthLabelSize: { type: StringConstructor; default: string; validator: (v: any) => boolean; }; }; interface UseMonthReturn { parsedCellWidth: ComputedRef; parsedMinWeeks: ComputedRef; parsedMinDays: ComputedRef; parsedMonthStart: ComputedRef; parsedMonthEnd: ComputedRef; parsedBreakpoint: ComputedRef; parsedMonthLabelSize: ComputedRef; days: Ref; todayWeek: Ref; isMiniMode: ComputedRef; monthFormatter: Ref<(_timestamp: Timestamp, _short?: boolean) => string>; isOutside: (_timestamp: Timestamp) => boolean; } export default function useMonth(props: MonthProps & CommonProps & CellWidthProps, emit: EmitFn<{ 'mini-mode': [boolean]; }>, { times, parsedStart, parsedEnd, size, headerColumnRef, }: { times: { today: Timestamp; }; parsedStart: Ref; parsedEnd: Ref; size: { width: number; }; headerColumnRef: Ref<{ offsetWidth: number; } | null>; }): UseMonthReturn; export {};