import { Task, ViewMode } from "../types/public-types";
import DateTimeFormatOptions = Intl.DateTimeFormatOptions;
import DateTimeFormat = Intl.DateTimeFormat;
declare type DateHelperScales = "year" | "quarter" | "month" | "day" | "hour" | "minute" | "second" | "millisecond";
export declare const getCachedDateTimeFormat: (locString: string | string[], opts?: DateTimeFormatOptions) => DateTimeFormat;
export declare const addToDate: (date: Date, quantity: number, scale: DateHelperScales) => Date;
export declare const startOfDate: (date: Date, scale: DateHelperScales) => Date;
/**
 * Default number of columns the chart aims to render across the chart pane
 * for each view mode. The Gantt component sizes columns so that this many
 * fit at the current pane width when the view mode is selected.
 *
 * Modes not listed (Hour / QuarterDay / HalfDay / Year) fall through to the
 * legacy `columnWidth` default.
 */
export declare const VIEW_MODE_DEFAULT_VISIBLE_COUNT: Partial<Record<ViewMode, number>>;
/**
 * Maximum number of columns the chart will show at once, even when the user
 * widens the chart pane with the resize bar. The Gantt component clamps
 * column width upward so visible count never exceeds this — overflow becomes
 * horizontal scroll.
 */
export declare const VIEW_MODE_MAX_VISIBLE_COUNT: Partial<Record<ViewMode, number>>;
export declare const ganttDateRange: (tasks: Task[], viewMode: ViewMode, preStepsCount: number, quarterStart?: number) => Date[];
export declare const seedDates: (startDate: Date, endDate: Date, viewMode: ViewMode) => Date[];
export declare const getLocaleMonth: (date: Date, locale: string) => string;
export declare const getLocalDayOfWeek: (date: Date, locale: string, format?: "long" | "short" | "narrow" | undefined) => string;
export declare const getWeekNumberISO8601: (date: Date) => string;
export declare const getDaysInMonth: (month: number, year: number) => number;
export {};
