import { VegaDatePickerCalendar } from '../../vega-date-picker-calendar';
import { MonthPeriod } from '../../../../../helpers/calendar';
import { VegaDatePickerCalendarStateBaseAbstract } from './vega-date-picker-calendar-state-base.abstract';
/** Current period controller. */
export declare class VegaDatePickerCalendarCurrentPeriodController extends VegaDatePickerCalendarStateBaseAbstract {
  currentPeriod: VegaDatePickerCalendar['currentPeriod'];
  host: VegaDatePickerCalendar['host'];
  today: VegaDatePickerCalendar['today'];
  mode: VegaDatePickerCalendar['mode'];
  format: VegaDatePickerCalendar['format'];
  timezone: VegaDatePickerCalendar['timezone'];
  minCalendarDate: VegaDatePickerCalendar['minCalendarDate'];
  maxCalendarDate: VegaDatePickerCalendar['maxCalendarDate'];
  isMobileDevice: VegaDatePickerCalendar['isMobileDevice'];
  monthYearChangeEventEmitter: VegaDatePickerCalendar['monthYearChangeEventEmitter'];
  calendarSelection: VegaDatePickerCalendar['calendarSelection'];
  isDualMonths: VegaDatePickerCalendar['isDualMonths'];
  /** connectedCallback */
  connectedCallback(): void;
  /** disconnectedCallback */
  disconnectedCallback(): void;
  /** componentWillLoad */
  componentWillLoad(): void;
  /** Listen maxDate changed */
  watchMaxCalendarDate(): void;
  /** Listen minDate changed */
  watchMinCalendarDate(): void;
  /** Listen currentPeriod changed */
  watchCurrentPeriod(): void;
  /** reset current period */
  resetCurrentPeriod(): void;
  /** Clear current period */
  clear(): void;
  /**
   * Goto next month period while single mode.
   * Goto next two month period while range mode.
   */
  gotoNextPeriod(): void;
  /**
   * Goto previous month period while single mode.
   * Goto previous two month period while range mode.
   */
  gotoPreviousPeriod(): void;
  /**
   * set current period
   *
   * @param {MonthPeriod} period current period
   */
  updateCalendarPeriod(period: MonthPeriod): void;
  /**
   * Current period follow below rules:
   * - Go to the value date month if the value is set.
   * - Go to the minDate month if only set the minDate and today is before than minDate.
   * - Go to the minDate month if minDate and maxDate are both set and today is after than maxDate.
   * - Go to the maxDate month if only set maxDate and today is after than maxDate.
   * - Go to today month if the value, minDate and maxDate all are empty.
   */
  private setCurrentMonthPeriod;
  /**
   * Get current year month by period
   *
   * @returns {DatePickerMonthYearTypes} - month and year info
   */
  private getCurrentYearMonthByPeriod;
  /**
   * Initialize calendar clear observer
   */
  private initCalendarPeriodUpdateObserver;
  /**
   * Remove calendar clear observer
   */
  private removeCalendarPeriodUpdateObserver;
}
