import type { Constructor } from '../../common/mixins/constructor.js';
import { IgcCalendarBaseComponent } from '../base.js';
import { CalendarDay } from '../model.js';
import { type IgcCalendarComponentEventMap } from '../types.js';
export interface IgcDaysViewEventMap extends IgcCalendarComponentEventMap {
    igcActiveDateChange: CustomEvent<Date>;
    igcRangePreviewDateChange: CustomEvent<Date>;
}
declare const IgcDaysViewComponent_base: Constructor<import("../../common/mixins/event-emitter.js").EventEmitterInterface<IgcDaysViewEventMap>> & Constructor<IgcCalendarBaseComponent>;
/**
 * Instantiate a days view as a separate component in the calendar.
 *
 * @element igc-days-view
 *
 * @fires igcActiveDateChange - Emitted when the active date changes.
 * @fires igcRangePreviewDateChange - Emitted when the range preview date changes.
 *
 * @csspart days-row - The days row container.
 * @csspart label - The label container.
 * @csspart label-inner - The inner label container.
 * @csspart week-number - The week number container.
 * @csspart week-number-inner - The inner week number container.
 */
export default class IgcDaysViewComponent extends IgcDaysViewComponent_base {
    static readonly tagName = "igc-days-view";
    static styles: import("lit").CSSResult;
    static register(): void;
    private dates;
    private activeDay;
    /** The active state of the component. */
    active: boolean;
    /**
     * Whether to show leading days which do not belong to the current month.
     * @attr hide-leading-days
     */
    hideLeadingDays: boolean;
    /**
     * Whether to show trailing days which do not belong to the current month.
     * @attr hide-trailing-days
     */
    hideTrailingDays: boolean;
    /** The range preview date. */
    set rangePreviewDate(value: Date | undefined);
    get rangePreviewDate(): Date | undefined;
    /** The resource strings. */
    resourceStrings: import("../../common/i18n/calendar.resources.js").IgcCalendarResourceStrings;
    /**
     * The format of the days. Defaults to narrow.
     * @attr week-day-format
     */
    weekDayFormat: 'long' | 'short' | 'narrow';
    private _intl;
    protected localeChange(): void;
    protected weekDayFormatChange(): void;
    protected datesChange(): void;
    constructor();
    connectedCallback(): void;
    /** Focuses the active date. */
    focusActiveDate(): void;
    protected handleInteraction(event: Event): void;
    private _selectMultiple;
    private _selectRange;
    private selectDate;
    private isSelected;
    private setRangePreviewDate;
    private changeRangePreview;
    private clearRangePreview;
    private isFirstInRange;
    private isLastInRange;
    private isRangeDate;
    private isRangePreview;
    private intlFormatDay;
    private getDayHandlers;
    private getDayProperties;
    protected renderDay(day: CalendarDay, today: CalendarDay): import("lit-html").TemplateResult<1>;
    protected renderHeaderWeekNumber(): import("lit-html").TemplateResult<1>;
    protected renderWeekNumber(start: CalendarDay, last: boolean): import("lit-html").TemplateResult<1>;
    protected renderHeaders(): import("lit-html").TemplateResult<1>;
    protected renderWeeks(): Generator<import("lit-html").TemplateResult<1>, void, unknown>;
    protected render(): import("lit-html").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'igc-days-view': IgcDaysViewComponent;
    }
}
export {};
