import { Atomico } from 'atomico/types/dom'; import { DaysOfWeek } from '../utils/date.js'; import { Pagination } from '../calendar-base/useCalendarBase.js'; declare type AtomicoThis = Props & DOMThis & { update(): Promise; updated: Promise; mounted: Promise; unmounted: Promise; readonly symbolId: unique symbol; }; export declare const CalendarDate: Atomico< { months: number; value: string; focus: (options?: CalendarFocusOptions) => void; firstDayOfWeek: DaysOfWeek; isDateDisallowed: (date: Date) => boolean; min: string; max: string; today: string; locale: string | undefined; focusedDate: string | undefined; formatWeekday: "short" | "narrow"; onFocusDay: (event: CustomEvent) => any; getDayParts: (date: Date) => string; showOutsideDays: boolean; showWeekNumbers: boolean; pageBy: Pagination; onChange: (event: Event) => any; } & {}, { months: number; value: string; focus: (options?: CalendarFocusOptions) => void; firstDayOfWeek: DaysOfWeek; isDateDisallowed: (date: Date) => boolean; min: string; max: string; today: string; locale: string | undefined; focusedDate: string | undefined; formatWeekday: "short" | "narrow"; onFocusDay: (event: CustomEvent) => any; getDayParts: (date: Date) => string; showOutsideDays: boolean; showWeekNumbers: boolean; pageBy: Pagination; onChange: (event: Event) => any; } & {}, { new (): HTMLElement; prototype: HTMLElement; }>; export declare type CalendarDateProps = ComponentProps; declare interface CalendarFocusOptions extends FocusOptions { target?: "day" | "next" | "previous"; } export declare const CalendarMonth: Atomico< { offset: number; onSelectDay: (event: CustomEvent) => any; onFocusDay: (event: CustomEvent) => any; onHoverDay: (event: CustomEvent) => any; } & {}, { offset: number; onSelectDay: (event: CustomEvent) => any; onFocusDay: (event: CustomEvent) => any; onHoverDay: (event: CustomEvent) => any; } & {}, { new (): HTMLElement; prototype: HTMLElement; }>; export declare type CalendarMonthProps = ComponentProps; export declare const CalendarMulti: Atomico< { months: number; value: string; focus: (options?: CalendarFocusOptions) => void; firstDayOfWeek: DaysOfWeek; isDateDisallowed: (date: Date) => boolean; min: string; max: string; today: string; locale: string | undefined; focusedDate: string | undefined; formatWeekday: "short" | "narrow"; onFocusDay: (event: CustomEvent) => any; getDayParts: (date: Date) => string; showOutsideDays: boolean; showWeekNumbers: boolean; pageBy: Pagination; onChange: (event: Event) => any; } & {}, { months: number; value: string; focus: (options?: CalendarFocusOptions) => void; firstDayOfWeek: DaysOfWeek; isDateDisallowed: (date: Date) => boolean; min: string; max: string; today: string; locale: string | undefined; focusedDate: string | undefined; formatWeekday: "short" | "narrow"; onFocusDay: (event: CustomEvent) => any; getDayParts: (date: Date) => string; showOutsideDays: boolean; showWeekNumbers: boolean; pageBy: Pagination; onChange: (event: Event) => any; } & {}, { new (): HTMLElement; prototype: HTMLElement; }>; export declare type CalendarMultiProps = ComponentProps; export declare const CalendarRange: Atomico< { months: number; value: string; focus: (options?: CalendarFocusOptions) => void; firstDayOfWeek: DaysOfWeek; isDateDisallowed: (date: Date) => boolean; min: string; max: string; today: string; locale: string | undefined; focusedDate: string | undefined; formatWeekday: "short" | "narrow"; onFocusDay: (event: CustomEvent) => any; getDayParts: (date: Date) => string; showOutsideDays: boolean; showWeekNumbers: boolean; pageBy: Pagination; onChange: (event: Event) => any; tentative: string; onRangeStart: (event: CustomEvent) => any; onRangeEnd: (event: CustomEvent) => any; } & {}, { months: number; value: string; focus: (options?: CalendarFocusOptions) => void; firstDayOfWeek: DaysOfWeek; isDateDisallowed: (date: Date) => boolean; min: string; max: string; today: string; locale: string | undefined; focusedDate: string | undefined; formatWeekday: "short" | "narrow"; onFocusDay: (event: CustomEvent) => any; getDayParts: (date: Date) => string; showOutsideDays: boolean; showWeekNumbers: boolean; pageBy: Pagination; onChange: (event: Event) => any; tentative: string; onRangeStart: (event: CustomEvent) => any; onRangeEnd: (event: CustomEvent) => any; } & {}, { new (): HTMLElement; prototype: HTMLElement; }>; export declare type CalendarRangeProps = ComponentProps; export declare const CalendarSelectMonth: Atomico< { formatMonth: "long" | "short"; } & {}, { formatMonth: "long" | "short"; } & {}, { new (): HTMLElement; prototype: HTMLElement; }>; export declare type CalendarSelectMonthProps = ComponentProps; export declare const CalendarSelectYear: Atomico< { maxYears: number; } & {}, { maxYears: number; } & {}, { new (): HTMLElement; prototype: HTMLElement; }>; export declare type CalendarSelectYearProps = ComponentProps; declare type ComponentProps any> = Simplify, keyof HTMLElement | keyof AtomicoThis>>>; declare type DOMThis = Element extends new ( ...args: any[] ) => infer This ? This : Element; declare type Simplify = { [K in keyof T]: T[K]; } & {}; export { } // this is just a hacky workaround to ensure the global declarations make it into the dts rollup // they get appended to the end of the file on vite build declare global { interface HTMLElementTagNameMap { "calendar-month": InstanceType; "calendar-date": InstanceType; "calendar-range": InstanceType; } }