/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseAdapter, IBaseAdapter } from '../core/base';
import { DayOfWeek, ICalendarDateOptions, ICalendarDayOptions, ICalendarEvent, ICalendarDateConfig } from './calendar-constants';
import { ICalendarComponent } from './calendar';
import { CalendarDirection, ICalendarMenuOption, CalendarMenuAnimationType } from './calendar-menu';
export interface ICalendarAdapter extends IBaseAdapter {
    animateIntoSelectionMenu(options: ICalendarMenuOption[], direction: CalendarDirection, setFocus: boolean): void;
    closeMenu(): void;
    moveMenuFocusDown(): void;
    moveMenuFocusBackward(): boolean;
    moveMenuFocusForward(): boolean;
    moveMenuFocusUp(): void;
    openMenuAsGrid(options: ICalendarMenuOption[], setFocus: boolean): void;
    openMenuAsList(options: ICalendarMenuOption[], setFocus: boolean): void;
    registerClearButtonListener(listener: (evt: Event) => void): void;
    registerDateClickListener(listener: (evt: Event) => void): void;
    registerHoverListener(listener: (evt: Event) => void): void;
    registerKeydownListener(listener: (evt: KeyboardEvent) => void): void;
    registerMenuFocusChangeEventListener(listener: (evt: CustomEvent<number>) => void): void;
    registerMenuListener(listener: (evt: CustomEvent<number>) => void): void;
    registerMonthButtonListener(listener: (evt: Event) => void): void;
    registerNextButtonListener(listener: (evt: Event) => void): void;
    registerPreventFocusListener(listener: (evt: Event) => void): void;
    registerPreviousButtonListener(listener: (evt: Event) => void): void;
    registerTodayButtonListener(listener: (evt: Event) => void): void;
    registerYearButtonListener(listener: (evt: Event) => void): void;
    removeClearButton(): void;
    removeFooter(): void;
    removeHeader(): void;
    removeTodayButton(): void;
    replaceDate(date: ICalendarDateConfig, options?: ICalendarDateOptions): void;
    replaceDateWithSpacer(date: Date): void;
    selectFocusedMenuItem(): void;
    setAllDatesUnfocusable(): void;
    setClearButton(): void;
    setContainerClass(name: string, value: boolean): void;
    setDateDisabled(date: Date, value: boolean): void;
    setDateDescription(date: Date, value?: string): void;
    setDates(dates: ICalendarDateConfig[], options?: ICalendarDateOptions): void;
    setDateSelected(date: Date, value: boolean): void;
    setDateTooltip(date: Date, value?: string): void;
    setDateViewHidden(value: boolean): void;
    setDays(days: DayOfWeek[], options?: ICalendarDayOptions): void;
    setEvent(event: ICalendarEvent, overflow?: boolean): void;
    setEventWrapperOnDate(date: Date, value: boolean): void;
    setFooter(): void;
    setHeader(): void;
    setMenuAnimation(value: CalendarMenuAnimationType): void;
    setMonth(month: number, locale?: string): void;
    setMonthButtonPressed(value: boolean): void;
    setMultiple(value: boolean): void;
    setNextButtonDisabled(value: boolean): void;
    setNextButtonLabel(label: string): void;
    setPreventFocusOnMenu(value: boolean): void;
    setPreviousButtonDisabled(value: boolean): void;
    setPreviousButtonLabel(label: string): void;
    setRange(dates: Date[] | null): void;
    setRangeEnd(date: Date | null): void;
    setRangeStart(date: Date | null): void;
    setActiveDate(date: Date, setFocus: boolean, preventFocus?: boolean): void;
    setTodayButton(): void;
    setWeekend(date: Date, value: boolean): void;
    setYear(year: number, locale?: string): void;
    setYearButtonPressed(value: boolean): void;
    toggleContainerAttribute(hasAttribute: boolean, name: string, value?: string): void;
    unregisterClearButtonListener(listener: (evt: Event) => void): void;
    unregisterDateClickListener(listener: (evt: Event) => void): void;
    unregisterHoverListener(listener: (evt: Event) => void): void;
    unregisterMenuFocusChangeEventListener(listener: (evt: CustomEvent<number>) => void): void;
    unregisterMenuListener(listener: (evt: CustomEvent) => void): void;
    unregisterMonthButtonListener(listener: (evt: Event) => void): void;
    unregisterNextButtonListener(listener: (evt: Event) => void): void;
    unregisterPreventFocusListener(listener: (evt: Event) => void): void;
    unregisterPreviousButtonListener(listener: (evt: Event) => void): void;
    unregisterTodayButtonListener(listener: (evt: Event) => void): void;
    unregisterYearButtonListener(listener: (evt: Event) => void): void;
}
export declare class CalendarAdapter extends BaseAdapter<ICalendarComponent> implements ICalendarAdapter {
    private _container;
    private _dateView;
    private _dayRow;
    private _dateGrid;
    private _menu;
    constructor(component: ICalendarComponent);
    toggleContainerAttribute(hasAttribute: boolean, name: string, value?: string): void;
    registerMonthButtonListener(listener: (evt: Event) => void): void;
    unregisterMonthButtonListener(listener: (evt: Event) => void): void;
    registerYearButtonListener(listener: (evt: Event) => void): void;
    unregisterYearButtonListener(listener: (evt: Event) => void): void;
    registerMenuListener(listener: (evt: CustomEvent<number>) => void): void;
    unregisterMenuListener(listener: (evt: CustomEvent<number>) => void): void;
    registerMenuFocusChangeEventListener(listener: (evt: CustomEvent<number>) => void): void;
    unregisterMenuFocusChangeEventListener(listener: (evt: CustomEvent<number>) => void): void;
    registerNextButtonListener(listener: (evt: Event) => void): void;
    unregisterNextButtonListener(listener: (evt: Event) => void): void;
    registerPreviousButtonListener(listener: (evt: Event) => void): void;
    unregisterPreviousButtonListener(listener: (evt: Event) => void): void;
    registerClearButtonListener(listener: (evt: Event) => void): void;
    unregisterClearButtonListener(listener: (evt: Event) => void): void;
    registerTodayButtonListener(listener: (evt: Event) => void): void;
    unregisterTodayButtonListener(listener: (evt: Event) => void): void;
    registerDateClickListener(listener: (evt: Event) => void): void;
    unregisterDateClickListener(listener: (evt: Event) => void): void;
    registerKeydownListener(listener: (evt: KeyboardEvent) => void): void;
    registerHoverListener(listener: (evt: Event) => void): void;
    unregisterHoverListener(listener: (evt: Event) => void): void;
    registerPreventFocusListener(listener: (evt: Event) => void): void;
    unregisterPreventFocusListener(listener: (evt: Event) => void): void;
    setContainerClass(name: string, value: boolean): void;
    setHeader(): void;
    removeHeader(): void;
    setNextButtonDisabled(value: boolean): void;
    setPreviousButtonDisabled(value: boolean): void;
    setNextButtonLabel(label: string): void;
    setPreviousButtonLabel(label: string): void;
    setMonthButtonPressed(value: boolean): void;
    setYearButtonPressed(value: boolean): void;
    setMonth(month: number, locale?: string): void;
    setYear(year: number, locale?: string): void;
    setFooter(): void;
    removeFooter(): void;
    setClearButton(): void;
    removeClearButton(): void;
    setTodayButton(): void;
    removeTodayButton(): void;
    setDays(days: DayOfWeek[], options?: ICalendarDayOptions): void;
    setDates(dates: ICalendarDateConfig[], options?: ICalendarDateOptions): void;
    replaceDate(date: ICalendarDateConfig, options?: ICalendarDateOptions): void;
    replaceDateWithSpacer(date: Date): void;
    setDateDisabled(date: Date, value: boolean): void;
    setDateSelected(date: Date, value: boolean): void;
    setWeekend(date: Date, value: boolean): void;
    appendDateAttribute(date: Date, name: string, value: string): void;
    setMultiple(value: boolean): void;
    setDateViewHidden(value: boolean): void;
    setRange(dates: Date[] | null): void;
    setRangeStart(date: Date | null): void;
    setRangeEnd(date: Date | null): void;
    setActiveDate(date: Date, setFocus: boolean, preventFocus?: boolean): void;
    setAllDatesUnfocusable(): void;
    setDateDescription(date: Date, value?: string): void;
    setDateTooltip(date: Date, value?: string): void;
    setEventWrapperOnDate(date: Date, value: boolean): void;
    setEvent(event: ICalendarEvent, overflow?: boolean): void;
    openMenuAsGrid(options: ICalendarMenuOption[], setFocus: boolean): void;
    openMenuAsList(options: ICalendarMenuOption[], setFocus: boolean): void;
    closeMenu(): void;
    setMenuAnimation(value: CalendarMenuAnimationType): void;
    animateIntoSelectionMenu(options: ICalendarMenuOption[], direction: CalendarDirection, setFocus: boolean): void;
    moveMenuFocusDown(): void;
    moveMenuFocusBackward(): boolean;
    moveMenuFocusForward(): boolean;
    moveMenuFocusUp(): void;
    selectFocusedMenuItem(): void;
    setPreventFocusOnMenu(value: boolean): void;
}
