import { type ExtendedLocaleVocab } from './localeRegistry.js'; import { type LocaleVocab } from './localeVocab.js'; import { type RelativeGrammar } from './relativeGrammar.js'; import { type FormatterOptions, type Formatter, type CustomToken } from './extensibility.js'; import { type HolidaySpec, type HolidayCalendar } from './holidays.js'; import type { compileFormat as compileFormatBase } from './format.js'; import type { compileParser as compileParserBase } from './parse.js'; import type { parseRelative as parseRelativeBase } from './parseRelative.js'; import type { explainFormat as explainFormatBase, tokenizeFormat as tokenizeFormatBase, listTokens as listTokensBase, tokenInfo as tokenInfoBase, isValidFormat as isValidFormatBase, validateFormat as validateFormatBase, fieldForToken as fieldForTokenBase } from './analyze.js'; import type { monthsInYear as monthsInYearBase, isLeapYear as isLeapYearBase, isLeapMonth as isLeapMonthBase, weekOfYear as weekOfYearBase, weekYear as weekYearBase, getMonth as getMonthBase, getWeekday as getWeekdayBase } from './calendarUtils.js'; import type { isEqual as isEqualBase, isBefore as isBeforeBase, isAfter as isAfterBase, clamp as clampBase, isBetween as isBetweenBase, isToday as isTodayBase, isTomorrow as isTomorrowBase, isYesterday as isYesterdayBase, isSameDay as isSameDayBase, isSameWeek as isSameWeekBase, isSameMonth as isSameMonthBase, isSameQuarter as isSameQuarterBase, isSameYear as isSameYearBase, isWeekday as isWeekdayBase } from './comparison.js'; import type { floor as floorBase, ceil as ceilBase, truncate as truncateBase } from './rounding.js'; import type { parseRFC3339 as parseRFC3339Base, formatRFC3339 as formatRFC3339Base, parseRFC2822 as parseRFC2822Base, parseHTTPDate as parseHTTPDateBase, fromUnixMicroseconds as fromUnixMicrosecondsBase, fromUnixNanoseconds as fromUnixNanosecondsBase, toUnixSeconds as toUnixSecondsBase, toUnixMilliseconds as toUnixMillisecondsBase, toUnixMicroseconds as toUnixMicrosecondsBase, toUnixNanoseconds as toUnixNanosecondsBase, parseSQL as parseSQLBase, formatSQL as formatSQLBase } from './serialization.js'; import type { formatDurationToParts as formatDurationToPartsBase, parseDuration as parseDurationBase, parseISODuration as parseISODurationBase, formatISODuration as formatISODurationBase, balanceDuration as balanceDurationBase, compareDuration as compareDurationBase, subtractDuration as subtractDurationBase } from './duration.js'; import type { getLocale as getLocaleBase, hasLocale as hasLocaleBase } from './localeRegistry.js'; import type { createConfig as createConfigBase, mergeWithConfig as mergeWithConfigBase } from './config.js'; import type { listRegisteredGrammars as listRegisteredGrammarsBase } from './relativeGrammar.js'; import type { interval as intervalBase, overlaps as overlapsBase, intersection as intersectionBase, union as unionBase, mergeIntervals as mergeIntervalsBase, formatRangeToParts as formatRangeToPartsBase } from './interval.js'; import type { between as betweenBase, parseRRule as parseRRuleBase, formatRRule as formatRRuleBase } from './recurrence.js'; import type { createBusinessCalendar as createBusinessCalendarBase, subtractBusinessDays as subtractBusinessDaysBase } from './businessCalendar.js'; import type { nextHoliday as nextHolidayBase, previousHoliday as previousHolidayBase } from './holidays.js'; import type { resolveZoned as resolveZonedBase, getNextTransition as getNextTransitionBase, getPreviousTransition as getPreviousTransitionBase, possibleInstantsFor as possibleInstantsForBase } from './timezone.js'; import type { getAutocompleteData as getAutocompleteDataBase, getHoverDocs as getHoverDocsBase, getInlineDiagnostics as getInlineDiagnosticsBase, previewFormat as previewFormatBase, getDocUrl as getDocUrlBase } from './ideData.js'; import type { translateDateFnsFormatString as translateDateFnsFormatStringBase } from './codemod.js'; import type { format as FormatFn } from './format.js'; import type { parse as ParseFn } from './parse.js'; export declare const GRANTABLE_PERMISSIONS: readonly ['fs:read', 'fs:write', 'child-process', 'worker']; export interface ModContext { registerLocale(locale: string, vocab: ExtendedLocaleVocab): void; registerLocaleVocab(locale: string, vocab: LocaleVocab): void; registerRelativeGrammar(grammar: RelativeGrammar): void; createFormatter(options?: FormatterOptions): Formatter; createHolidayCalendar(specs: HolidaySpec[]): HolidayCalendar; registerFormatToken(token: CustomToken): void; log(level: 'debug' | 'info' | 'warn' | 'error', message: string, meta?: Record): void; reportIssue(issue: { message: string; severity?: 'warning' | 'error'; detail?: unknown; }): void; hasPermission(capability: typeof GRANTABLE_PERMISSIONS[number]): boolean; overrideFormat(impl: (original: typeof FormatFn, ...args: Parameters) => ReturnType): void; overrideParse(impl: (original: typeof ParseFn, ...args: Parameters) => ReturnType): void; overrideCompileFormat(impl: (original: typeof compileFormatBase, ...args: Parameters) => ReturnType): void; overrideCompileParser(impl: (original: typeof compileParserBase, ...args: Parameters) => ReturnType): void; overrideParseRelative(impl: (original: typeof parseRelativeBase, ...args: Parameters) => ReturnType): void; overrideExplainFormat(impl: (original: typeof explainFormatBase, ...args: Parameters) => ReturnType): void; overrideTokenizeFormat(impl: (original: typeof tokenizeFormatBase, ...args: Parameters) => ReturnType): void; overrideListTokens(impl: (original: typeof listTokensBase, ...args: Parameters) => ReturnType): void; overrideTokenInfo(impl: (original: typeof tokenInfoBase, ...args: Parameters) => ReturnType): void; overrideIsValidFormat(impl: (original: typeof isValidFormatBase, ...args: Parameters) => ReturnType): void; overrideValidateFormat(impl: (original: typeof validateFormatBase, ...args: Parameters) => ReturnType): void; overrideFieldForToken(impl: (original: typeof fieldForTokenBase, ...args: Parameters) => ReturnType): void; overrideMonthsInYear(impl: (original: typeof monthsInYearBase, ...args: Parameters) => ReturnType): void; overrideIsLeapYear(impl: (original: typeof isLeapYearBase, ...args: Parameters) => ReturnType): void; overrideIsLeapMonth(impl: (original: typeof isLeapMonthBase, ...args: Parameters) => ReturnType): void; overrideWeekOfYear(impl: (original: typeof weekOfYearBase, ...args: Parameters) => ReturnType): void; overrideWeekYear(impl: (original: typeof weekYearBase, ...args: Parameters) => ReturnType): void; overrideGetMonth(impl: (original: typeof getMonthBase, ...args: Parameters) => ReturnType): void; overrideGetWeekday(impl: (original: typeof getWeekdayBase, ...args: Parameters) => ReturnType): void; overrideIsEqual(impl: (original: typeof isEqualBase, ...args: Parameters) => ReturnType): void; overrideIsBefore(impl: (original: typeof isBeforeBase, ...args: Parameters) => ReturnType): void; overrideIsAfter(impl: (original: typeof isAfterBase, ...args: Parameters) => ReturnType): void; overrideClamp(impl: (original: typeof clampBase, ...args: Parameters) => ReturnType): void; overrideIsBetween(impl: (original: typeof isBetweenBase, ...args: Parameters) => ReturnType): void; overrideIsToday(impl: (original: typeof isTodayBase, ...args: Parameters) => ReturnType): void; overrideIsTomorrow(impl: (original: typeof isTomorrowBase, ...args: Parameters) => ReturnType): void; overrideIsYesterday(impl: (original: typeof isYesterdayBase, ...args: Parameters) => ReturnType): void; overrideIsSameDay(impl: (original: typeof isSameDayBase, ...args: Parameters) => ReturnType): void; overrideIsSameWeek(impl: (original: typeof isSameWeekBase, ...args: Parameters) => ReturnType): void; overrideIsSameMonth(impl: (original: typeof isSameMonthBase, ...args: Parameters) => ReturnType): void; overrideIsSameQuarter(impl: (original: typeof isSameQuarterBase, ...args: Parameters) => ReturnType): void; overrideIsSameYear(impl: (original: typeof isSameYearBase, ...args: Parameters) => ReturnType): void; overrideIsWeekday(impl: (original: typeof isWeekdayBase, ...args: Parameters) => ReturnType): void; overrideFloor(impl: (original: typeof floorBase, ...args: Parameters) => ReturnType): void; overrideCeil(impl: (original: typeof ceilBase, ...args: Parameters) => ReturnType): void; overrideTruncate(impl: (original: typeof truncateBase, ...args: Parameters) => ReturnType): void; overrideParseRFC3339(impl: (original: typeof parseRFC3339Base, ...args: Parameters) => ReturnType): void; overrideFormatRFC3339(impl: (original: typeof formatRFC3339Base, ...args: Parameters) => ReturnType): void; overrideParseRFC2822(impl: (original: typeof parseRFC2822Base, ...args: Parameters) => ReturnType): void; overrideParseHTTPDate(impl: (original: typeof parseHTTPDateBase, ...args: Parameters) => ReturnType): void; overrideFromUnixMicroseconds(impl: (original: typeof fromUnixMicrosecondsBase, ...args: Parameters) => ReturnType): void; overrideFromUnixNanoseconds(impl: (original: typeof fromUnixNanosecondsBase, ...args: Parameters) => ReturnType): void; overrideToUnixSeconds(impl: (original: typeof toUnixSecondsBase, ...args: Parameters) => ReturnType): void; overrideToUnixMilliseconds(impl: (original: typeof toUnixMillisecondsBase, ...args: Parameters) => ReturnType): void; overrideToUnixMicroseconds(impl: (original: typeof toUnixMicrosecondsBase, ...args: Parameters) => ReturnType): void; overrideToUnixNanoseconds(impl: (original: typeof toUnixNanosecondsBase, ...args: Parameters) => ReturnType): void; overrideParseSQL(impl: (original: typeof parseSQLBase, ...args: Parameters) => ReturnType): void; overrideFormatSQL(impl: (original: typeof formatSQLBase, ...args: Parameters) => ReturnType): void; overrideFormatDurationToParts(impl: (original: typeof formatDurationToPartsBase, ...args: Parameters) => ReturnType): void; overrideParseDuration(impl: (original: typeof parseDurationBase, ...args: Parameters) => ReturnType): void; overrideParseISODuration(impl: (original: typeof parseISODurationBase, ...args: Parameters) => ReturnType): void; overrideFormatISODuration(impl: (original: typeof formatISODurationBase, ...args: Parameters) => ReturnType): void; overrideBalanceDuration(impl: (original: typeof balanceDurationBase, ...args: Parameters) => ReturnType): void; overrideCompareDuration(impl: (original: typeof compareDurationBase, ...args: Parameters) => ReturnType): void; overrideSubtractDuration(impl: (original: typeof subtractDurationBase, ...args: Parameters) => ReturnType): void; overrideGetLocale(impl: (original: typeof getLocaleBase, ...args: Parameters) => ReturnType): void; overrideHasLocale(impl: (original: typeof hasLocaleBase, ...args: Parameters) => ReturnType): void; overrideCreateConfig(impl: (original: typeof createConfigBase, ...args: Parameters) => ReturnType): void; overrideMergeWithConfig(impl: (original: typeof mergeWithConfigBase, ...args: Parameters) => ReturnType): void; overrideListRegisteredGrammars(impl: (original: typeof listRegisteredGrammarsBase, ...args: Parameters) => ReturnType): void; overrideInterval(impl: (original: typeof intervalBase, ...args: Parameters) => ReturnType): void; overrideOverlaps(impl: (original: typeof overlapsBase, ...args: Parameters) => ReturnType): void; overrideIntersection(impl: (original: typeof intersectionBase, ...args: Parameters) => ReturnType): void; overrideUnion(impl: (original: typeof unionBase, ...args: Parameters) => ReturnType): void; overrideMergeIntervals(impl: (original: typeof mergeIntervalsBase, ...args: Parameters) => ReturnType): void; overrideFormatRangeToParts(impl: (original: typeof formatRangeToPartsBase, ...args: Parameters) => ReturnType): void; overrideBetween(impl: (original: typeof betweenBase, ...args: Parameters) => ReturnType): void; overrideParseRRule(impl: (original: typeof parseRRuleBase, ...args: Parameters) => ReturnType): void; overrideFormatRRule(impl: (original: typeof formatRRuleBase, ...args: Parameters) => ReturnType): void; overrideCreateBusinessCalendar(impl: (original: typeof createBusinessCalendarBase, ...args: Parameters) => ReturnType): void; overrideSubtractBusinessDays(impl: (original: typeof subtractBusinessDaysBase, ...args: Parameters) => ReturnType): void; overrideNextHoliday(impl: (original: typeof nextHolidayBase, ...args: Parameters) => ReturnType): void; overridePreviousHoliday(impl: (original: typeof previousHolidayBase, ...args: Parameters) => ReturnType): void; overrideResolveZoned(impl: (original: typeof resolveZonedBase, ...args: Parameters) => ReturnType): void; overrideGetNextTransition(impl: (original: typeof getNextTransitionBase, ...args: Parameters) => ReturnType): void; overrideGetPreviousTransition(impl: (original: typeof getPreviousTransitionBase, ...args: Parameters) => ReturnType): void; overridePossibleInstantsFor(impl: (original: typeof possibleInstantsForBase, ...args: Parameters) => ReturnType): void; overrideGetAutocompleteData(impl: (original: typeof getAutocompleteDataBase, ...args: Parameters) => ReturnType): void; overrideGetHoverDocs(impl: (original: typeof getHoverDocsBase, ...args: Parameters) => ReturnType): void; overrideGetInlineDiagnostics(impl: (original: typeof getInlineDiagnosticsBase, ...args: Parameters) => ReturnType): void; overridePreviewFormat(impl: (original: typeof previewFormatBase, ...args: Parameters) => ReturnType): void; overrideGetDocUrl(impl: (original: typeof getDocUrlBase, ...args: Parameters) => ReturnType): void; overrideTranslateDateFnsFormatString(impl: (original: typeof translateDateFnsFormatStringBase, ...args: Parameters) => ReturnType): void; } export declare function buildModContextFor(modName: string): ModContext; export declare function buildModContext(): ModContext; export interface ModRegistrationKey { kind: 'locale' | 'localeVocab' | 'relativeGrammar' | 'formatterTokens' | 'formatToken' | 'overrideFormat' | 'overrideParse'; key: string; } export interface ModDiagnostic { source: 'log' | 'reportIssue'; level: 'debug' | 'info' | 'warn' | 'error'; message: string; meta?: Record; detail?: unknown; } export declare function buildTrackedModContext(modName: string, onRegister: (key: ModRegistrationKey) => void, onDiagnostic?: (event: ModDiagnostic) => void): ModContext; export interface Mod { name: string; version?: string; requires?: string[]; priority?: number; register(ctx: ModContext, config: Record): void | Promise; } export declare function isMod(value: unknown): value is Mod;