import { type Precision } from "./api.js";
/**
 * Decomposes given duration (in milliseconds) into a tuple of: `[year, month,
 * day, hour, minute, second, millis]`.
 *
 * @param dur -
 */
export declare const decomposeDuration: (dur: number) => number[];
/**
 * Computes a duration (in milliseconds) from given parts. Also see
 * {@link decomposeDuration}.
 *
 * @example
 * ```ts tangle:../export/compose-duration.ts
 * import { composeDuration } from "@thi.ng/date";
 *
 * console.log(
 *   composeDuration({ h: 12, m: 34, s: 56 })
 * );
 * // 45296000
 * ```
 *
 * @param parts
 */
export declare const composeDuration: (parts: Partial<Record<Precision, number>>) => number;
/**
 * Calculates the given duration in units of given `prec`ision.
 *
 * @example
 * ```ts tangle:../export/duration-as.ts
 * import { durationAs, difference } from "@thi.ng/date";
 *
 * console.log(
 *   durationAs("d", difference("2023-02-01T12:00:00Z", "2023-01-01"))
 * );
 * // 31.5
 * ```
 *
 * @param prec
 * @param dur
 */
export declare const durationAs: (prec: Precision, dur: number) => number;
/**
 * Returns duration in seconds.
 *
 * @param dur
 */
export declare const asSeconds: (dur: number) => number;
/**
 * Returns duration in minutes.
 *
 * @param dur
 */
export declare const asMinutes: (dur: number) => number;
/**
 * Returns duration in hours.
 *
 * @param dur
 */
export declare const asHours: (dur: number) => number;
/**
 * Returns duration in days.
 *
 * @param dur
 */
export declare const asDays: (dur: number) => number;
/**
 * Returns duration in weeks.
 *
 * @param dur
 */
export declare const asWeeks: (dur: number) => number;
/**
 * Returns duration in months (as defined by {@link MONTH})..
 *
 * @param dur
 */
export declare const asMonths: (dur: number) => number;
/**
 * Returns duration in years (as defined by {@link YEAR}).
 *
 * @param dur
 */
export declare const asYears: (dur: number) => number;
//# sourceMappingURL=duration.d.ts.map