export declare const getDate: (timestamp?: string) => string;
export declare const getDateShort: (timestamp: string) => string;
export declare const getDateTime: (timestamp: string, is24?: boolean) => string;
export declare const getTime: (timestamp: string, is24?: boolean) => string;
export declare const getHours: (timestamp?: string, is24?: boolean) => number;
export declare const getMinutes: (timestamp?: string) => number;
export declare const getMonth: (timestamp: string) => string;
export declare const getSuffix: (timestamp?: string, is24?: boolean) => string;
type CalendarDay = {
    day: number;
    enabled: boolean;
};
export declare const getMonthWeekDays: (monthTimestamp: string, weekStart: "sunday" | "monday", options?: {
    disableDatesAfterDate?: string;
    disableDatesBeforeDate?: string;
}) => CalendarDay[];
export declare const addHours: (timestamp?: string, amount?: number) => string;
export declare const addMinutes: (timestamp?: string, amount?: number) => string;
export declare const setHours: (timestamp?: string, amount?: number, is24?: boolean, isPM?: boolean) => string;
export declare const setMinutes: (timestamp?: string, amount?: number) => string;
/**
 * Apply a year/month/day to `timestamp`, preserving its time-of-day, and return
 * an ISO string.
 *
 * The day is neutralized to the 1st before the month is set, so a prior
 * day-of-month that doesn't exist in the target month (e.g. Jan 31 → Feb) can't
 * overflow into the following month mid-chain. The final day is clamped to the
 * target month's length. When `day` is omitted, the timestamp's existing
 * day-of-month is used (clamped).
 */
export declare const setYearMonthDay: (timestamp: string | undefined, year: number, monthIndex: number, day?: number) => string;
interface DateLimitOptions {
    /** Inclusive ISO upper bound; dates after it are disabled. Resolve 'today' first. */
    disableDatesAfterDate?: string;
    /** Inclusive ISO lower bound; dates before it are disabled. Resolve 'today' first. */
    disableDatesBeforeDate?: string;
}
/**
 * Resolve the `'today'` sentinel accepted by the date-limit props to a concrete
 * ISO string, leaving other values untouched. Returns the shape the
 * `isMonthDisabled`/`isYearDisabled`/`getMonthWeekDays` helpers expect.
 */
export declare const resolveDateLimits: (limits?: {
    disableDatesAfterDate?: "today" | string;
    disableDatesBeforeDate?: "today" | string;
}) => DateLimitOptions;
/**
 * Whether an entire month falls outside the allowed range. Returns true only
 * when *every* day in the month is out of range; partially-allowed months stay
 * enabled so the day panel can disable individual days. Compared at day
 * granularity.
 */
export declare const isMonthDisabled: (year: number, monthIndex: number, options?: DateLimitOptions) => boolean;
/**
 * Whether an entire year falls outside the allowed range. Returns true only when
 * *every* day in the year is out of range; partially-allowed years stay enabled.
 * Compared at day granularity.
 */
export declare const isYearDisabled: (year: number, options?: DateLimitOptions) => boolean;
export declare const checkIsAfter: (date: any, dateToCheck: any) => boolean;
export declare const checkIsBefore: (date: any, dateToCheck: any, opts?: {
    dateOnly?: boolean;
}) => boolean;
export declare const checkIsBetweenDates: (timestamp: any, startRange?: string, endRange?: string) => boolean;
export declare const checkIsSameDay: (date: any, dateToCheck: any) => boolean;
export declare const checkIsToday: (date: any) => boolean;
export declare const getDayOfMonth: (day: any, timestamp: any) => string;
export {};
