import { IEventDetail, IEventEmitter } from '@breadstone/mosaik-elements';
import { CalendarView } from '../../../../Types/CalendarView';
import { DayOfWeek } from '../../../../Types/DayOfWeek';
import { CalendarViewBaseElement } from './Abstracts/CalendarViewBase';
import type { ICalendarDaysViewElementProps } from './ICalendarDaysViewElementProps';
declare const CalendarDaysViewElement_base: (abstract new (...args: Array<any>) => import("../../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../../Behaviors/Appearanceable").IAppearanceableProps) & (abstract new (...args: Array<any>) => import("../../../../Behaviors/Variantable").IVariantableProps) & typeof CalendarViewBaseElement & import("../../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Calendar Days View - A component that displays a view of days within a month, allowing users to select a specific day.
 *
 * @description
 * The Calendar Days View component shows a grid of days within a given month. Users can navigate through the days and
 * select a specific day for date selection or scheduling purposes. This view is commonly used within a date picker or
 * calendar component to provide a detailed daily view within a selected month.
 *
 * @name Calendar Days View
 * @element mosaik-calendar-days-view
 * @category Calendar
 *
 * @slot header - The header slot.
 *
 * @csspart dayLabel - The day label part.
 * @csspart dayView - The day view part.
 * @csspart heading - The heading part.
 * @csspart item - The item part.
 * @csspart labels - The labels part.
 * @csspart month - The month part.
 * @csspart navigation - The navigation part.
 * @csspart weekNumber - The week number part.
 * @csspart weekNumberLabel - The week number label part.
 * @csspart year - The year part.
 *
 * @cssprop {String} --calendar-days-view-font-family - The days view font family CSS custom property.
 * @cssprop {String} --calendar-days-view-font-letter-spacing - The days view font letter spacing CSS custom property.
 * @cssprop {String} --calendar-days-view-font-line-height - The days view font line height CSS custom property.
 * @cssprop {String} --calendar-days-view-font-size - The days view font size CSS custom property.
 * @cssprop {String} --calendar-days-view-font-text-decoration - The days view font text decoration CSS custom property.
 * @cssprop {String} --calendar-days-view-font-text-transform - The days view font text transform CSS custom property.
 * @cssprop {String} --calendar-days-view-font-weight - The days view font weight CSS custom property.
 * @cssprop {String} --calendar-days-view-gap
 * @cssprop {String} --calendar-days-view-padding-bottom
 * @cssprop {String} --calendar-days-view-padding-left
 * @cssprop {String} --calendar-days-view-padding-right
 * @cssprop {String} --calendar-days-view-padding-top
 * @cssprop {String} --calendar-days-view-shadow - The days view shadow CSS custom property.
 * @cssprop {String} --calendar-days-view-shadow-blur - The days view shadow blur CSS custom property.
 * @cssprop {String} --calendar-days-view-shadow-color - The days view shadow color CSS custom property.
 * @cssprop {String} --calendar-days-view-shadow-offset-x - The days view shadow offset x CSS custom property.
 * @cssprop {String} --calendar-days-view-shadow-offset-y - The days view shadow offset y CSS custom property.
 * @cssprop {String} --calendar-days-view-shadow-spread - The days view shadow spread CSS custom property.
 * @cssprop {String} --calendar-days-view-transition-duration - The days view transition duration CSS custom property.
 * @cssprop {String} --calendar-days-view-transition-mode - The days view transition mode CSS custom property.
 * @cssprop {String} --calendar-days-view-transition-property - The days view transition property CSS custom property.
 * @cssprop {String} --calendar-days-view-translate - The days view translate CSS custom property.
 *
 * @dependency mosaik-button - The Button element.
 * @dependency mosaik-button-group - The Button Group element.
 * @dependency mosaik-calendar-item - The Calendar Item element.
 * @dependency mosaik-text - The Text element.
 *
 * @example
 * Basic calendar days view:
 * ```html
 * <mosaik-calendar-days-view></mosaik-calendar-days-view>
 * ```
 *
 * @example
 * Calendar days view with today and weekend highlighting:
 * ```html
 * <mosaik-calendar-days-view
 *   is-today-highlighted
 *   is-weekend-highlighted
 *   show-week-numbers>
 * </mosaik-calendar-days-view>
 * ```
 *
 * @public
 */
export declare class CalendarDaysViewElement extends CalendarDaysViewElement_base implements ICalendarDaysViewElementProps {
    private readonly _previewDateChange;
    private _showAdjacent;
    private _showWeekNumbers;
    private _firstDayOfWeek;
    private _isTodayHighlighted;
    private _isWeekendHighlighted;
    private _rangePreviewDate;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     * The `is` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `showAdjacent` property.
     *
     * @public
     * @attr
     */
    get showAdjacent(): boolean;
    set showAdjacent(value: boolean);
    /**
     * Gets or sets the `showWeekNumbers` property.
     *
     * @public
     * @attr
     */
    get showWeekNumbers(): boolean;
    set showWeekNumbers(value: boolean);
    /**
     * Gets or sets the `firstDayOfWeek` property.
     *
     * @public
     * @attr
     */
    get firstDayOfWeek(): DayOfWeek;
    set firstDayOfWeek(value: DayOfWeek);
    /**
     * Gets or sets the `isTodayHighlighted` property.
     *
     * @public
     * @attr
     */
    get isTodayHighlighted(): boolean;
    set isTodayHighlighted(value: boolean);
    /**
     * Gets or sets the `isWeekendHighlighted` property.
     *
     * @public
     * @attr
     */
    get isWeekendHighlighted(): boolean;
    set isWeekendHighlighted(value: boolean);
    /**
     * Gets or sets the `rangePreviewDate` property.
     *
     * @public
     */
    get rangePreviewDate(): Date | null;
    set rangePreviewDate(value: Date | null);
    /**
     * Called when the rage preview date is changed.
     * Provides reference to `IEventDetail` as event detail.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get previewDateChange(): IEventEmitter<IEventDetail>;
    isSelected(day: Date): boolean;
    /**
     * @protected
     * @template
     */
    selectAdjacentDay(direction: 'previous' | 'next', day: Date): void;
    /**
     * @protected
     * @template
     */
    selectDay(day: Date): void;
    /**
     * @protected
     * @template
     */
    setView(view: CalendarView): void;
    /**
     * @protected
     * @template
     */
    changeRangePreview(date: Date): void;
    /**
     * @protected
     * @template
     */
    clearRangePreview(): void;
    /**
     * Emits the `previewDateChange` event.
     *
     * @protected
     */
    protected onPreviewDateChange(args: any): void;
    /**
     * @private
     */
    private setRangePreviewDate;
    /**
     * @private
     */
    private generateDateRange;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-calendar-days-view': CalendarDaysViewElement;
    }
}
export {};
//# sourceMappingURL=CalendarDaysViewElement.d.ts.map