import type { TranslationFunction, TranslationPack } from '../../i18n';
import type { ExcludeStrict } from '../../types';
import type { DateTimeFormat, DateTimeVariant } from './DateTime.types';
import type { ClockFormat } from './Input/utils';
type DateTimeFormatOptions = {
    locale: string;
    format: DateTimeFormat;
    timeZone?: string;
    clockFormat?: ClockFormat;
    calendarType?: string;
} & ({
    variant: ExcludeStrict<DateTimeVariant, 'quarteryear'>;
    t?: TranslationFunction<TranslationPack>;
} | {
    variant: 'quarteryear';
    t: TranslationFunction<TranslationPack>;
});
export declare function getIntlDateTimeFormatFromCache(locale: string, options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat;
export declare function formatDateTime(value: Date, { t, locale, format, variant, clockFormat, calendarType, timeZone }: DateTimeFormatOptions): string;
interface DurationFormatOptions {
    /** Locale to be used - en_US, jp_JP, fr_FR etc */
    locale: string;
    /** Determines maximum number of units to be displayed. */
    significantUnits: 5 | 4 | 3 | 2 | 1;
    /**
     * Unit formatting style
     * @default "narrow"
     */
    unitDisplay?: Intl.NumberFormatOptions['unitDisplay'];
    /**
     * Unit of maximum precision
     * @default "second"
     */
    maxPrecision?: 'day' | 'hour' | 'minute' | 'second' | 'millisecond';
}
export declare function formatDuration(valueInMs: number, { locale, significantUnits, unitDisplay, maxPrecision }: DurationFormatOptions): string;
/**
 * @returns Current date and time value adjusted for local time zone.
 */
export declare const getAdjustedUTCDateTime: () => Date;
export {};
//# sourceMappingURL=utils.d.ts.map