import type { Nullable } from '../../typings/utility-types.js';
import type { Theme } from '../../lib/theming/Theme.js';
import { MonthViewModel } from './MonthViewModel.js';
import type { CalendarState } from './Calendar.js';
import type { CalendarDateShape } from './CalendarDateShape.js';
export declare const calculateScrollPosition: (months: MonthViewModel[], scrollPosition: number, deltaY: number, theme: Theme) => {
    scrollPosition: number;
    months: MonthViewModel[];
    scrollDirection: number;
};
export declare const applyDelta: (deltaY: number, theme: Theme) => ({ scrollPosition, months }: Readonly<CalendarState>, { minDate, maxDate }: {
    minDate: CalendarDateShape;
    maxDate: CalendarDateShape;
}) => {
    scrollPosition: number;
    scrollDirection: number;
};
export declare const isMonthVisible: (top: number, month: MonthViewModel, theme: Theme) => boolean;
export declare const getMonthsHeight: (months: MonthViewModel[], theme: Theme) => number;
export declare const getMonths: (month: number, year: number) => MonthViewModel[];
export declare const getMonthInNativeFormat: (month: number) => number;
export declare const getMonthInHumanFormat: (month: number) => number;
export declare const getInitialDate: ({ today, date, minDate, maxDate, }: {
    today: CalendarDateShape;
    date?: Nullable<CalendarDateShape>;
    minDate?: Nullable<CalendarDateShape>;
    maxDate?: Nullable<CalendarDateShape>;
}) => CalendarDateShape;
export declare const getTodayDate: () => CalendarDateShape;
