import { DurationUnitSelection, type DurationBySelection } from './duration-selection.js';
import { AnyDuration } from './duration.js';
import type { RoundOptions } from './round-options.js';
/**
 * Convert a duration from any combination of units into the selected units.
 *
 * @category Duration
 * @example
 *
 * ```ts
 * import {convertDuration} from 'date-vir';
 *
 * convertDuration({seconds: 5, milliseconds: 5}, {minutes: true}); // `{minutes: 0.25}`
 * convertDuration({seconds: 5_356_800}, {weeks: true, seconds: true}); // `{weeks: 8, seconds: 518_400}`
 * ```
 */
export declare function convertDuration<const SelectedUnits extends Readonly<DurationUnitSelection>>(duration: Readonly<AnyDuration>, 
/** Select which duration units to convert to. */
units: SelectedUnits, rawOptions?: RoundOptions): DurationBySelection<SelectedUnits>;
/**
 * Round every unit in a given duration to the given number of decimal points.
 *
 * @category Duration
 * @example
 *
 * ```ts
 * import {roundDuration} from 'date-vir';
 *
 * roundDuration({days: 1.002, minutes: 0.125}, 2); // `{days: 1, minutes: 0.13}`
 * ```
 */
export declare function roundDuration<InputDuration extends AnyDuration>(duration: Readonly<InputDuration>, options: RoundOptions): InputDuration;
