import { IDateRange } from "./calculationDateRanges"; export type DatePeriodEnum = "last7days" | "last14days" | "last28days" | "last30days" | "lastWeekMon" | "lastWeekSun" | "lastMonth" | "lastQuarter" | "lastYear" | "ytd" | "mtd" | "wtdSun" | "wtdMon" | "qtd"; export type DateRangeTuple = [startDate: Date | number, endDate: Date | number]; export declare const datePeriodsFunctions: Partial IDateRange>>; export interface IDateRangeChangedOptions { datePeriod?: DatePeriodEnum; dateRange?: DateRangeTuple; } export interface IDateRangeModelOptions { onDateRangeChanged: (dateRange: IDateRange, datePeriod: DatePeriodEnum) => void; datePeriod?: DatePeriodEnum; availableDatePeriods?: Array; dateRange?: DateRangeTuple; includeToday?: boolean; } export declare class DateRangeModel { private _currentDatePeriod; private _currentDateRange; private _availableDatePeriods; private _onDateRangeChanged; private _includeToday; constructor(options: IDateRangeModelOptions); get currentDatePeriod(): DatePeriodEnum; get currentDateRange(): IDateRange; get availableDatePeriods(): Array; get includeToday(): boolean; set includeToday(newValue: boolean); toggleIncludeToday(): void; setDatePeriod(datePeriod: DatePeriodEnum | undefined): void; setFilter(start: number, end: number, isCustom?: boolean): void; periodIsToDate(): boolean; }