import { Temporal } from "@js-temporal/polyfill"; /** * Duration parsing/formatting mode. * - "designator": Uses the standard Y/M/D designator format. Weeks are converted to days. * - "weeks": Uses the exclusive weeks format. Y/M/D units are ignored. */ export type DurationMode = "designator" | "weeks"; /** * Parses an ISO8601 duration string based on the specified mode. * - If the input is blank or invalid, returns zeros. * - In "weeks" mode, extracts only weeks. * - In "designator" mode, converts weeks to days and combines with Y/M/D. * * @param mode * @param iso * @returns The parsed parts. * * @example * parseByMode("designator", "P1Y2M3D") // => { years: 1, months: 2, days: 3, weeks: 0 } * parseByMode("designator", "P4W") // => { years: 0, months: 0, days: 28, weeks: 0 } * parseByMode("weeks", "P4W") // => { years: 0, months: 0, days: 0, weeks: 4 } * parseByMode("weeks", "P1Y2M3D") // => { years: 0, months: 0, days: 0, weeks: 0 } * parseByMode("designator", "") // => { years: 0, months: 0, days: 0, weeks: 0 } * parseByMode("weeks", null) // => { years: 0, months: 0, days: 0, weeks: 0 } */ export declare function parseByMode(mode: DurationMode, iso?: string | null): Temporal.DurationLike; /** * Formats an ISO8601 duration string based on the specified mode and parts. * @param mode * @param parts */ export declare function formatByMode(mode: DurationMode, parts: Temporal.DurationLike): string;