declare export var Format: {|
  +MILISECONDS: 1, // 1
  +SECONDS: 2, // 2
  +MINS: 6, // 6
  +HOURS: 14, // 14
  +DAYS: 30, // 30
|};
declare class TimeConverter {
  /**
   * Sets the target format to be converted
   * TimeConverter.target(Format.MILISECONDS).from(Format.SECONDS, 123)
   * Will convert to milisecs (123000) from secs (123)
   * @param {$Values<typeof Format>} target
   * @returns TimeConverter
   */
  static target(target: $Values<typeof Format>): TimeConverter;

  /**
   * base value to be multiplied or divided (milisecs)
   * @param {$Values<typeof Format>} format
   * @returns number
   */
  static getBaseValue(format: $Values<typeof Format>): number;

  /**
   * Set the target format for conversion
   * @param {$Values<typeof Format>} target
   */
  constructor(target: $Values<typeof Format>): this;

  /**
   * Add time value of that format before getValue()
   * @param {$Values<typeof Format>} format
   * @param {number} value
   * @returns TimeConverter
   */
  add(format: $Values<typeof Format>, value: number): TimeConverter;

  /**
   * Gets the value after converted
   * @param {$Values<typeof Format>} format
   * @param {number} value
   * @returns number
   */
  from(format: $Values<typeof Format>, value: number): number;

  /**
   * Get the value after addtion or from is being called
   * @param {} hasDecimal =true
   * @returns number
   */
  getValue(hasDecimal?: boolean): number;
}
declare export default typeof TimeConverter;
