/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { CalendarSettings, SelectionRangeEnd, SelectionRange, CalendarMode } from '../../models/main';
import { CalendarChangeEvent, CalendarWeekCellClickEvent } from '../../..';
import { CalendarWeekNameClickEvent } from './CalendarEventArguments';
/**
 * Represents the props of the [Kendo UI for Vue Calendar component]({% slug overview_calendar %}). The generic argument is passed to the `change` property and is used as a target in the [`CalendarChangeEvent`]({% slug api_dateinputs_calendarchangeevent %}) interface.
 */
export interface CalendarProps extends CalendarSettings {
    /**
     * Specifies which end of the defined selection range will be marked as active.
     *
     * > If the selection range is undefined, the value is ignored.
     */
    activeRangeEnd?: SelectionRangeEnd;
    /**
     * If set to `true`, the component skips the validation of whether the `from` value is after the `to` value.
     */
    allowReverse?: boolean;
    /**
     * @hidden
     */
    modelValue?: Date | Date[] | SelectionRange | null;
    /**
     * Sets the default value of the Calendar.
     */
    defaultValue?: Date | Date[] | SelectionRange | null;
    /**
     * An event that is called after the value of the Calendar has changed.
     */
    onChange?: (event: CalendarChangeEvent) => void;
    /**
     * An event called when the week number cell is clicked.
     */
    onWeekcellclick?: (event: CalendarWeekCellClickEvent) => void;
    /**
     * An event called when the week name cell is clicked.
     */
    onWeeknameclick?: (event: CalendarWeekNameClickEvent) => void;
    /**
     * Sets the value of the Calendar.
     */
    value?: Date | Date[] | SelectionRange | null;
    /**
     * Sets the value of the Calendar.
     */
    views: number;
    /**
     * Sets the selection mode of the Calendar.
     *
     * The available modes are:
     * * (Default) `single`&mdash;Renders a single-date selection.
     * * `multiple`&mdash;Renders a multiple-date selection.
     * * `range`&mdash;Renders a date-range selection.
     */
    mode?: CalendarMode;
    /**
     * @hidden
     */
    onKeydown?: (event: any) => void;
}
