/// <reference path="../../index.d.ts" />
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { HoverRange } from "../../utils/date.js";
import type { Scale } from "../interfaces.js";
import type { HeadingLevel } from "../functional/Heading.js";

export abstract class DatePickerMonth extends LitElement {
  /** The currently active Date. */
  accessor activeDate: Date;
  /**
   * Specifies the number of calendars displayed when `range` is `true`.
   *
   * @default 2
   */
  accessor calendars: 1 | 2;
  /** End date currently active. */
  accessor endDate: Date | undefined;
  /** Specifies the heading level number of the component's `heading` for proper document structure, without affecting visual styling. */
  accessor headingLevel: HeadingLevel;
  /** The range of dates currently being hovered. */
  accessor hoverRange: HoverRange;
  /** Specifies the latest allowed date (`"yyyy-mm-dd"`). */
  accessor max: Date;
  /** Specifies the earliest allowed date (`"yyyy-mm-dd"`). */
  accessor min: Date;
  /** Specifies the monthStyle used by the component. */
  accessor monthStyle: "abbreviated" | "wide";
  /**
   * When `true`, activates the component's range mode which renders two calendars for selecting ranges of dates.
   *
   * @default false
   */
  accessor range: boolean;
  /** Specifies the size of the component. */
  accessor scale: Scale;
  /** Already selected date. */
  accessor selectedDate: Date;
  /** Start date currently active. */
  accessor startDate: Date | undefined;
}