import { Month, TimeframeTick, ZeniDate } from '@zeniai/client-epic-state'; import { AllowedTimeframe } from '../../common/downloadReport/types/downloadReportOptions'; export type DateRange = TimeframeTick; interface CalendarPeriodValue { dateRange: DateRange; firstMonthOfFY: Month; timeframe: AllowedTimeframe; } export declare function getNumberOfPeriods(firstMonthOfFY: Month, timeFrame: AllowedTimeframe, dateRange: TimeframeTick, maxNumberOfPeriods?: number): number; export declare function getCalendarPeriodValue(firstMonthOfFY: Month, timeframe: AllowedTimeframe, endDate: ZeniDate, numOfPeriods?: number): CalendarPeriodValue; export declare class CalendarPeriod { private _firstMonthOfFY; private _timeframe; private _dataAvailable; private _endDate; private _numberOfPeriods; private _maxNumberOfPeriods; constructor(startMonthOfFY: Month, timeframe: AllowedTimeframe, dataAvailable: DateRange, numberOfPeriods: number, maxNumberOfPeriods: number, endDate?: ZeniDate); get value(): CalendarPeriodValue; get dataAvailable(): TimeframeTick; get firstMonthOfFY(): 9 | 7 | 6 | 1 | 3 | 10 | 2 | 4 | 8 | 5 | 11 | 12; get timeframe(): AllowedTimeframe; set timeframe(newTimeframe: AllowedTimeframe); get numberOfPeriods(): number; get maxNumberOfPeriods(): number; set maxNumberOfPeriods(newValue: number); get startDate(): ZeniDate; get endDate(): ZeniDate; /** * Valid calendar period for the given timeframe * and maxNumberOfPeriods. * @returns */ getValidCalendarPeriod(): DateRange; canUpdateToPeriod(startDate: ZeniDate, endDate: ZeniDate): boolean; updatePeriod(startDate: ZeniDate, endDate: ZeniDate): boolean; updateStartDate(startDate: ZeniDate): boolean; updateEndDate(endDate: ZeniDate): boolean; } export {};