import { Nil } from '../misc';
export type DateInput = Date | string | number;
export interface DateRange {
    start?: Nil<DateInput>;
    end?: Nil<DateInput>;
}
/**
 * Formats date to include just the day, month and year.
 * The exact date format is based on locale.
 *
 * @example
 * ```ts
 * // US format
 * "2/12/2019"
 * ```
 *
 * @example
 * ```ts
 * // PL format
 * "12.02.2019"
 * ```
 */
export declare const formatDate: (value: DateInput) => string;
/**
 * Formats date like {@link formatDate}, but replaces Nil and empty strings with `null`.
 */
export declare const formatNilDate: (value: Nil<DateInput>) => string | null;
/**
 * Formats date to include both day, month, year and hours, seconds.
 * The exact date format is based on locale.
 *
 * @example
 * ```ts
 * // US format
 * "2/12/2019 11:31 PM"
 * ```
 *
 * @example
 * ```ts
 * // PL format
 * "12.02.2019 23:31"
 * ```
 */
export declare const formatDateTime: (value: DateInput) => string;
/**
 * Formats date like {@link formatDateTime}, but replaces Nil and empty strings with `null`.
 */
export declare const formatNilDateTime: (value: Nil<DateInput>) => string | null;
/**
 * Formats a date range into a human-readable string using locale-aware formatting.
 *
 * @example
 * ```ts
 * // Both dates provided
 * formatDateRange({ start: "2025-01-01", end: "2025-01-31" })
 * // Returns: "1/1/2025 – 1/31/2025"
 * ```
 *
 * @example
 * ```ts
 * // Only start date
 * formatDateRange({ start: "2025-01-01" })
 * // Returns: "from 1/1/2025"
 * ```
 *
 * @example
 * ```ts
 * // Only end date
 * formatDateRange({ end: "2025-01-31" })
 * // Returns: "ending 1/31/2025"
 * ```
 *
 * @example
 * ```ts
 * // No dates provided
 * formatDateRange({})
 * // Returns: null
 * ```
 */
export declare const formatDateRange: (dateRange: DateRange, formatter?: Intl.DateTimeFormat) => string | null;
/**
 * Formats a date range like {@link formatDateRange}, but returns `null` for nil date ranges.
 *
 * @example
 * ```ts
 * formatNilDateRange({ start: "2025-01-01", end: "2025-01-31" })
 * // Returns: "1/1/2025 – 1/31/2025"
 * ```
 *
 * @example
 * ```ts
 * formatNilDateRange(null)
 * // Returns: null
 * ```
 */
export declare const formatNilDateRange: (dateRange: Nil<DateRange>, formatter?: Intl.DateTimeFormat) => string | null;
