import { VegaSlimmer } from '../../../../../vega-slimmer/vega-slimmer-core';
import { VegaCalendar } from '../../../vega-calendar';
import { CalendarDate, CalendarPeriod } from '../../../../../helpers/calendar';
import { Nullable } from '../../../../../types/general';
/**
 * Controller for managing the post-operation date in the Vega Calendar.
 */
export declare class VegaCalendarPostOperationDateController extends VegaSlimmer {
  protected postOperationDate: VegaCalendar['postOperationDate'];
  protected timezone: VegaCalendar['timezone'];
  /**
   * Set new current date
   *
   * @param {CalendarDate} currentDate new value
   */
  setPostOperationDate(currentDate: CalendarDate): void;
  /**
   * Set post operation Date when the current period changes
   *
   * @param {CalendarPeriod} newValue the new calendar period
   * @param {CalendarPeriod} oldValue the prev calendar period
   */
  protected setDate(newValue: CalendarPeriod, oldValue: Nullable<CalendarPeriod>): void;
  /**
   * Handle timezone changes by updating postOperationDate
   *
   */
  protected updateAfterTimezoneChange(): void;
  /**
   * Check if the first date should be set
   * Both the new and old values are of the month type.
   * The new date is not equal to the current date.
   *
   * @param {CalendarPeriod} newValue The new calendar period
   * @param {CalendarPeriod} oldValue The old calendar period
   * @returns {boolean} True if the first date should be set, false otherwise
   */
  private shouldSetCurrentDateToFirstDayOfMonth;
}
