UNPKG

@rr0/time

Version:
91 lines 3.58 kB
/** @import { Level0Date } from "../date/Level0Date.mjs" */ /** @import { EDTFParser } from "../../EDTFParser.mjs" */ /** @import { LevelFactory } from "../../LevelFactory.mjs" */ /** * @typedef {Object} Level0DurationInSpec * @property {Level0Year|number} [years] * @property {Level0Month|number} [months] * @property {Level0Day|number} [days] * @property {Level0Hour|number} [hours] * @property {Level0Minute|number} [minutes] * @property {Level0Second|number} [seconds] * @property {Level0Millisecond|number} [milliseconds] */ /** * @typedef {Object} Level0DurationOutSpec * @property {Level0Year} [years] * @property {Level0Month} [months] * @property {Level0Day} [days] * @property {Level0Hour} [hours] * @property {Level0Minute} [minutes] * @property {Level0Second} [seconds] * @property {Level0Millisecond} [milliseconds] */ /** * @template {Level0Year} Y = [Level0Year] * @template {Level0Month} M = [Level0Month] * @template {Level0Day} D = [Level0Day] * @template {Level0Hour} H = [Level0Hour] * @template {Level0Minute} M = [Level0Minute] * @template {Level0Second} S = [Level0Second] * @template {Level0Millisecond} C = [Level0Millisecond] */ export class Level0Duration<Y extends Level0Year, M extends Level0Month, D extends Level0Day, H extends Level0Hour, S extends Level0Second, C extends Level0Millisecond> extends Level0Component { /** * @template F=Level0Factory * @param {Level0Duration | number} value Duration or milliseconds * @param {F} [factory] The factory to create duration components (year, month, etc.) * @return {Level0DurationOutSpec} */ static toSpec<F>(value: Level0Duration<any, any, any, any, any, any> | number, factory?: F): Level0DurationOutSpec; /** * @param {string} str * @param {EDTFParser} [parser] * @return {Level0Duration} */ static fromString(str: string, parser?: EDTFParser<any>): Level0Duration<any, any, any, any, any, any>; /** * @param {Level0Date} beforeDate * @param {Level0Date} afterDate * @return {Level0Duration} */ static between(beforeDate: Level0Date, afterDate: Level0Date): Level0Duration<any, any, any, any, any, any>; /** * @param {Level0DurationInSpec|number} spec */ constructor(spec?: Level0DurationInSpec | number); /** * @return {Level0DurationOutSpec} */ toSpec(): Level0DurationOutSpec; toString(renderer?: Level0DurationRenderer): string; } export type Level0DurationInSpec = { years?: Level0Year | number; months?: Level0Month | number; days?: Level0Day | number; hours?: Level0Hour | number; minutes?: Level0Minute | number; seconds?: Level0Second | number; milliseconds?: Level0Millisecond | number; }; export type Level0DurationOutSpec = { years?: Level0Year; months?: Level0Month; days?: Level0Day; hours?: Level0Hour; minutes?: Level0Minute; seconds?: Level0Second; milliseconds?: Level0Millisecond; }; import { Level0Year } from "../year/index.mjs"; import { Level0Month } from "../month/index.mjs"; import { Level0Day } from "../day/index.mjs"; import { Level0Hour } from "../hour/index.mjs"; import { Level0Second } from "../second/index.mjs"; import { Level0Component } from "../component/index.mjs"; import { Level0DurationRenderer } from "./Level0DurationRenderer.mjs"; import type { EDTFParser } from "../../EDTFParser.mjs"; import type { Level0Date } from "../date/Level0Date.mjs"; import { Level0Minute } from "../minute/index.mjs"; //# sourceMappingURL=Level0Duration.d.mts.map