/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { SchedulerView } from './scheduler-view';
/**
 * An action which indicates that the current view will switch to the next period
 * ([more information and examples]({% slug toolbar_scheduler %})).
 *
 * ```ts-no-run
 * const action = {
 *  type: 'next'
 * }
 * ```
 */
export interface Next {
    /** @hidden */
    type: 'next';
}
/**
 * An action which indicates that the current view will switch to the previous period
 * ([more information]({% slug api_scheduler_navigationaction %})).
 *
 * ```ts-no-run
 * const action = {
 *  type: 'prev'
 * }
 * ```
 */
export interface Prev {
    /** @hidden */
    type: 'prev';
}
/**
 * An action which indicates that the current view will switch to today's date
 * ([more information]({% slug api_scheduler_navigationaction %})).
 *
 * ```ts-no-run
 * const action = {
 *  type: 'today'
 * }
 * ```
 */
export interface Today {
    /** @hidden */
    type: 'today';
}
/**
 * An action which indicates that the current view will switch to the specified date
 * ([more information]({% slug api_scheduler_navigationaction %})).
 *
 * ```ts-no-run
 * const action = {
 *  type: 'select-date',
 *  date: new Date('2018-10-22')
 * }
 * ```
 */
export interface SelectDate {
    /** @hidden */
    type: 'select-date';
    /**
     * The date that will be selected by the Scheduler.
     */
    date: Date;
}
/**
 * An action which indicates that the selected view will be changed to the specified instance
 * ([more information and examples]({% slug toolbar_scheduler %})).
 *
 * ```ts-no-run
 * const action = {
 *  type: 'view-change',
 *  view: schedulerView
 * }
 * ```
 */
export interface ViewChange {
    /** @hidden */
    type: 'view-change';
    /**
     * The next view entry that will be displayed.
     */
    view: SchedulerView;
}
/**
 * An action which indicates that details for the specified date will be shown.
 *
 * ```ts-no-run
 * const action = {
 *  type: 'show-date',
 *  view: schedulerView,
 *  date: Date
 * }
 * ```
 */
export interface ShowDate {
    /** @hidden */
    type: 'show-date';
    /**
     * The view in which the date will be displayed.
     */
    view: SchedulerView;
    /**
     * The new selected date.
     */
    date: Date;
}
/**
 * An action which specifies that the view will scroll to the specified time.
 */
export interface ScrollTime {
    /** @hidden */
    type: 'scroll-time';
    /**
     * The time to which the view will scroll.
     */
    time: string | Date;
}
/**
 * An action which indicates that the previous event will be focused.
 */
export interface FocusPrev {
    /** @hidden */
    type: 'focus-prev';
}
/**
 * An action which indicates that the next event will be focused.
 */
export interface FocusNext {
    /** @hidden */
    type: 'focus-next';
}
/**
 * An action which toggles the Show Business Hours option.
 */
export interface ToggleBusinessHours {
    /** @hidden */
    type: 'toggle-business-hours';
}
/**
 * An action which focuses the first toolbar tool.
 */
export interface FocusToolbar {
    /** @hidden */
    type: 'focus-toolbar';
}
/**
 * A discriminated union of supported navigation actions
 * ([more information and examples]({% slug toolbar_scheduler %})).
 */
export type NavigationAction = Next | Prev | SelectDate | Today | ViewChange | ShowDate | ScrollTime | FocusPrev | FocusNext | ToggleBusinessHours | FocusToolbar;
