@rr0/time
Version:
EDTF parsing
91 lines • 3.58 kB
text/typescript
/** @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