Time

Time utilities.

type DateTime = string | number | Date
interface Time  {
  closest: (timeRange: TimeRange) => Time
  copy: Time
  equalsTime: (time: Time) => boolean
  fps: number
  frame: number
  isRange: () => boolean
  lengthSeconds: number
  scale: (fps: number, rounding?: string) => Time
  scaleToFps: (fps: number) => Time
  seconds: number
  startTime: Time
  timeRange: TimeRange
  withFrame: (frame: number) => Time
}
interface TimeRange 
extends Time {
  closest: (timeRange: TimeRange) => Time
  copy: Time
  end: number
  endTime: Time
  equalsTime: (time: Time) => boolean
  fps: number
  frame: number
  frameTimes: Array<Time>
  frames: number
  includes: (frame: number) => boolean
  intersection: (time: Time) => TimeRange | undefined
  intersects: (time: Time) => boolean
  isRange: () => boolean
  last: number
  lastTime: Time
  lengthSeconds: number
  offsetTime: (time: Time) => number
  position: number
  positionTime: (position: number, rounding?: string) => Time
  scale: (fps: number, rounding?: string) => Time
  scaleToFps: (fps: number) => Time
  seconds: number
  startTime: Time
  timeRange: TimeRange
  times: Array<Time>
  withFrame: (frame: number) => Time
}
type Timeout = number
/** @implements Time */
class TimeClass {
  closest: (timeRange: TimeRange) => Time
  copy: Time
  description: () => string
  equalsTime: (time: Time) => boolean
  fps: number
  frame: number
  isRange: () => boolean
  lengthSeconds: number
  min: (time: Time) => Time
  scale: (fps: number, rounding?: string) => Time
  scaleToFps: (fps: number) => Time
  seconds: number
  startTime: Time
  timeRange: TimeRange
  toString: () => string
  withFrame: (frame: number) => Time
}
/** @implements TimeRange */
class TimeRangeClass
extends TimeClass {
  closest: (timeRange: TimeRange) => Time
  copy: Time
  description: () => string
  end: number
  endTime: Time
  equalsTime: (time: Time) => boolean
  fps: number
  frame: number
  frameTimes: Array<Time>
  frames: number
  includes: (frame: number) => boolean
  intersection: (time: Time) => TimeRange | undefined
  intersects: (time: Time) => boolean
  isRange: () => boolean
  last: number
  lastTime: Time
  lengthSeconds: number
  min: (time: Time) => Time
  minEndTime: (time: TimeRange | Time) => TimeRange
  offsetTime: (time: Time) => number
  position: number
  positionTime: (position: number, rounding?: string) => Time
  scale: (fps: number, rounding?: string) => Time
  scaleToFps: (fps: number) => Time
  seconds: number
  startTime: Time
  timeRange: TimeRange
  times: Array<Time>
  toString: () => string
  withFrame: (frame: number) => Time
  withFrames: (frames: number) => TimeRange
}
function timeBasename(
  duration: number, 
  videoRate: *, 
  begin?: number
): string
function timeFromArgs(
  frame?: number, 
  fps?: number
): Time
function timeFromSeconds(
  seconds?: number, 
  fps?: number, 
  rounding?: Rounding
): Time
function timePadding(
  duration: number, 
  videoRate: *, 
  begin?: number
): number
function timeRangeFromArgs(
  frame?: number, 
  fps?: number, 
  frames?: number
): TimeRange
function timeRangeFromTime(
  time: Time, 
  frames?: number
): TimeRange
function timeRangeFromTimes(
  startTime: Time, 
  endTime?: Time
): TimeRange
function timeshiftDays<T = DateTime>(
  time: T, 
  days: number
): T
function timeshiftMinutes<T = DateTime>(
  time: T, 
  minutes: number
): T