import { CalendarMode, DateRange, FlowDirection, TimeItem, TimeUnitMode } from './calendar.types';
export declare const isExact: (mode?: CalendarMode) => mode is "exact";
export declare const isFrom: (mode?: CalendarMode) => mode is "from";
export declare const isTo: (mode?: CalendarMode) => mode is "to";
export declare const isRange: (mode?: CalendarMode) => mode is "range";
export declare const isDay: (timeUnitMode?: TimeUnitMode) => timeUnitMode is "day";
export declare const isMonth: (timeUnitMode?: TimeUnitMode) => timeUnitMode is "month";
export declare const isYear: (timeUnitMode?: TimeUnitMode) => timeUnitMode is "year";
/**
 * Helper to get the next date item when iterating between two dates
 * @param date current date in the iteration
 * @param timeUnitMode time unit mode for day, month, year
 */
export declare const getNextDate: (date: Date, timeUnitMode?: TimeUnitMode) => Date;
export declare const processSelectMonth: (clickedDate: Date, mode: CalendarMode, boundaries?: DateRange) => Date;
/**
 * Helper that calcs what new date we should set as viewDate when a year is clicked
 *
 * @param clickedDate date of year clicked
 * @param newDate pre-processed potential new view date
 * @param mode calendar mode
 * @param boundaries boundaries of date range
 */
export declare const processSelectYear: (clickedData: Date, mode: CalendarMode, boundaries?: DateRange) => Date;
export declare const processViewDate: (viewDate: Date, direction: FlowDirection, timeUnitMode: TimeUnitMode, calendarItems?: TimeItem[]) => Date | null;
//# sourceMappingURL=utils.d.ts.map