import { SchedulerView } from '../../../../Types/SchedulerView';
import { SchedulerViewBaseElement } from './Abstracts/SchedulerViewBaseElement';
import { ISchedulerMonthViewElementProps } from './ISchedulerMonthViewElementProps';
/**
 * Scheduler Month View - A calendar-style month view with event chips.
 *
 * @description
 * The Month view displays events in a traditional calendar grid layout with weeks as rows
 * and days as columns. Events are shown as compact chips within each day cell.
 * The view supports week numbers, adjacent month days, and highlighting.
 *
 * @name Scheduler Month View
 * @element mosaik-scheduler-month-view
 * @category Scheduler
 *
 * @slot - Default slot for event content
 * @slot event-${event.eventKey} - The event-${event.eventKey} slot.
 *
 * @csspart body - The scrollable body area
 * @csspart container - The main container
 * @csspart day-cell day-cell-empty - The day-cell day-cell-empty part.
 * @csspart day-events - Container for event chips in a day
 * @csspart day-number - The day number within a cell
 * @csspart event-chip - Individual event chip
 * @csspart event-time - The event-time part.
 * @csspart events-slot - The events-slot part.
 * @csspart header - The header row with day labels
 * @csspart header-cell - Individual day header cells (Sun, Mon, etc.)
 * @csspart more-events - The more-events part.
 * @csspart week-number - The week number cell
 * @csspart week-number-header - The week number column header
 * @csspart week-row - A single week row
 *
 * @cssprop {Color} --scheduler-month-view-background-color - Background color of the view
 * @cssprop {Color} --scheduler-month-view-border-color - Border color
 * @cssprop {String} --scheduler-month-view-border-radius - Border radius
 * @cssprop {String} --scheduler-month-view-border-style - Border style
 * @cssprop {String} --scheduler-month-view-border-width - Border width
 * @cssprop {String} --scheduler-month-view-cell-min-height - Minimum height for day cells
 * @cssprop {String} --scheduler-month-view-day-number-font-size - Font size for day numbers
 * @cssprop {String} --scheduler-month-view-day-number-font-weight - Font weight for day numbers
 * @cssprop {String} --scheduler-month-view-event-chip-border-radius - Border radius for event chips
 * @cssprop {String} --scheduler-month-view-event-chip-font-size - Font size for event chip text
 * @cssprop {String} --scheduler-month-view-event-chip-height - Height of event chips
 * @cssprop {String} --scheduler-month-view-font-family - The month view font family CSS custom property.
 * @cssprop {String} --scheduler-month-view-font-letter-spacing - The month view font letter spacing CSS custom property.
 * @cssprop {String} --scheduler-month-view-font-line-height - The month view font line height CSS custom property.
 * @cssprop {String} --scheduler-month-view-font-size - The month view font size CSS custom property.
 * @cssprop {String} --scheduler-month-view-font-text-decoration - The month view font text decoration CSS custom property.
 * @cssprop {String} --scheduler-month-view-font-text-transform - The month view font text transform CSS custom property.
 * @cssprop {String} --scheduler-month-view-font-weight - The month view font weight CSS custom property.
 * @cssprop {Color} --scheduler-month-view-foreground-color - Foreground/text color
 * @cssprop {String} --scheduler-month-view-gap - Gap between cells and elements
 * @cssprop {String} --scheduler-month-view-header-day-font-family - Font family for day headers
 * @cssprop {String} --scheduler-month-view-header-day-font-letter-spacing - Letter spacing for day headers
 * @cssprop {String} --scheduler-month-view-header-day-font-line-height - Line height for day headers
 * @cssprop {String} --scheduler-month-view-header-day-font-size - Font size for day headers
 * @cssprop {String} --scheduler-month-view-header-day-font-text-decoration - Text decoration for day headers
 * @cssprop {String} --scheduler-month-view-header-day-font-text-transform - Text transform for day headers
 * @cssprop {String} --scheduler-month-view-header-day-font-weight - Font weight for day headers
 * @cssprop {String} --scheduler-month-view-header-font-family - Font family for headers
 * @cssprop {String} --scheduler-month-view-header-font-letter-spacing - Letter spacing for headers
 * @cssprop {String} --scheduler-month-view-header-font-line-height - Line height for headers
 * @cssprop {String} --scheduler-month-view-header-font-size - Font size for headers
 * @cssprop {String} --scheduler-month-view-header-font-text-decoration - Text decoration for headers
 * @cssprop {String} --scheduler-month-view-header-font-text-transform - Text transform for headers
 * @cssprop {String} --scheduler-month-view-header-font-weight - Font weight for headers
 * @cssprop {String} --scheduler-month-view-header-weekday-font-family - Font family for weekday labels
 * @cssprop {String} --scheduler-month-view-header-weekday-font-letter-spacing - Letter spacing for weekday labels
 * @cssprop {String} --scheduler-month-view-header-weekday-font-line-height - Line height for weekday labels
 * @cssprop {String} --scheduler-month-view-header-weekday-font-size - Font size for weekday labels
 * @cssprop {String} --scheduler-month-view-header-weekday-font-text-decoration - Text decoration for weekday labels
 * @cssprop {String} --scheduler-month-view-header-weekday-font-text-transform - Text transform for weekday labels
 * @cssprop {String} --scheduler-month-view-header-weekday-font-weight - Font weight for weekday labels
 * @cssprop {String} --scheduler-month-view-padding-bottom - Bottom padding
 * @cssprop {String} --scheduler-month-view-padding-left - Left padding
 * @cssprop {String} --scheduler-month-view-padding-right - Right padding
 * @cssprop {String} --scheduler-month-view-padding-top - Top padding
 * @cssprop {String} --scheduler-month-view-shadow - The month view shadow CSS custom property.
 * @cssprop {String} --scheduler-month-view-shadow-blur - The month view shadow blur CSS custom property.
 * @cssprop {String} --scheduler-month-view-shadow-color - The month view shadow color CSS custom property.
 * @cssprop {String} --scheduler-month-view-shadow-offset-x - The month view shadow offset x CSS custom property.
 * @cssprop {String} --scheduler-month-view-shadow-offset-y - The month view shadow offset y CSS custom property.
 * @cssprop {String} --scheduler-month-view-shadow-spread - The month view shadow spread CSS custom property.
 * @cssprop {Color} --scheduler-month-view-today-background-color - Background color for today's cell
 * @cssprop {String} --scheduler-month-view-transition-duration - The month view transition duration CSS custom property.
 * @cssprop {String} --scheduler-month-view-transition-mode - The month view transition mode CSS custom property.
 * @cssprop {String} --scheduler-month-view-transition-property - The month view transition property CSS custom property.
 * @cssprop {String} --scheduler-month-view-translate - The month view translate CSS custom property.
 * @cssprop {String} --scheduler-month-view-week-number-width - The month view week number width CSS custom property.
 * @cssprop {Color} --scheduler-month-view-weekend-background-color - Background color for weekend cells
 *
 * @dependency mosaik-hint - The Hint element.
 *
 * @example
 * ```html
 * <mosaik-scheduler-month-view show-week-numbers show-adjacent></mosaik-scheduler-month-view>
 * ```
 *
 * @public
 */
export declare class SchedulerMonthViewElement extends SchedulerViewBaseElement implements ISchedulerMonthViewElementProps {
    private _showWeekNumbers;
    private _showAdjacent;
    private _weeks;
    private _weekdayHeaders;
    private _eventsByDay;
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets the layout mode for this view.
     *
     * @public
     * @override
     * @readonly
     */
    get view(): SchedulerView;
    /**
     * Gets or sets whether to show week numbers.
     *
     * @public
     * @attr
     */
    get showWeekNumbers(): boolean;
    set showWeekNumbers(value: boolean);
    /**
     * Gets or sets whether to show adjacent month days.
     *
     * @public
     * @attr
     */
    get showAdjacent(): boolean;
    set showAdjacent(value: boolean);
    /**
     * Gets the weeks data for rendering.
     *
     * @public
     * @readonly
     */
    get weeks(): Array<IMonthViewWeek>;
    /**
     * Gets the weekday headers.
     *
     * @public
     * @readonly
     */
    get weekdayHeaders(): Array<string>;
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    /**
     * Called after every update. Ensures the grid is built after all property bindings are applied.
     *
     * @protected
     * @override
     */
    protected updated(changedProperties: Map<keyof this, unknown>): void;
    /**
     * Gets events for a specific day.
     *
     * @public
     * @param dayKey - The day key (YYYY-MM-DD).
     * @returns Array of events for that day.
     */
    getEventsForDay(dayKey: string): Array<IMonthViewEvent>;
    private buildMonthGrid;
    private positionEvents;
}
/**
 * @public
 */
export declare namespace SchedulerMonthViewElement {
    type Props = ISchedulerMonthViewElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-scheduler-month-view': SchedulerMonthViewElement;
    }
}
//# sourceMappingURL=SchedulerMonthViewElement.d.ts.map