// -*- C++ -*-
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

export namespace std {

  namespace chrono {
    using std::chrono::duration;
    using std::chrono::time_point;

  } // namespace chrono

  using std::common_type;

  namespace chrono {

    // [time.traits], customization traits
    using std::chrono::treat_as_floating_point;
    using std::chrono::treat_as_floating_point_v;

    using std::chrono::duration_values;

    // using std::chrono::is_clock;
    // using std::chrono::is_clock_v;

    // [time.duration.nonmember], duration arithmetic
    using std::chrono::operator+;
    using std::chrono::operator-;
    using std::chrono::operator*;
    using std::chrono::operator/;
    using std::chrono::operator%;

    // [time.duration.comparisons], duration comparisons
    using std::chrono::operator==;
    using std::chrono::operator<;
    using std::chrono::operator>;
    using std::chrono::operator<=;
    using std::chrono::operator>=;
    using std::chrono::operator<=>;

    // [time.duration.cast], conversions
    using std::chrono::ceil;
    using std::chrono::duration_cast;
    using std::chrono::floor;
    using std::chrono::round;

    // [time.duration.io], duration I/O
#if _LIBCPP_HAS_LOCALIZATION
    using std::chrono::operator<<;
#endif
    // using std::chrono::from_stream;

    // convenience typedefs
    using std::chrono::days;
    using std::chrono::hours;
    using std::chrono::microseconds;
    using std::chrono::milliseconds;
    using std::chrono::minutes;
    using std::chrono::months;
    using std::chrono::nanoseconds;
    using std::chrono::seconds;
    using std::chrono::weeks;
    using std::chrono::years;

    // [time.point.nonmember], time_point arithmetic

    // [time.point.comparisons], time_point comparisons

    // [time.point.cast], conversions
    using std::chrono::time_point_cast;

    // [time.duration.alg], specialized algorithms
    using std::chrono::abs;

    // [time.clock.system], class system_clock
    using std::chrono::system_clock;

    using std::chrono::sys_days;
    using std::chrono::sys_seconds;
    using std::chrono::sys_time;

#if _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION
#  ifdef _LIBCPP_ENABLE_EXPERIMENTAL

    // [time.clock.utc], class utc_clock
    using std::chrono::utc_clock;

    using std::chrono::utc_seconds;
    using std::chrono::utc_time;

    using std::chrono::leap_second_info;

    using std::chrono::get_leap_second_info;

    // [time.clock.tai], class tai_clock
    using std::chrono::tai_clock;

    using std::chrono::tai_seconds;
    using std::chrono::tai_time;

    // [time.clock.gps], class gps_clock
    using std::chrono::gps_clock;

    using std::chrono::gps_seconds;
    using std::chrono::gps_time;
#  endif // _LIBCPP_ENABLE_EXPERIMENTAL
#endif   //  _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION

    // [time.clock.file], type file_clock
    using std::chrono::file_clock;

    using std::chrono::file_time;

#if _LIBCPP_HAS_MONOTONIC_CLOCK
    // [time.clock.steady], class steady_clock
    using std::chrono::steady_clock;
#endif

    // [time.clock.hires], class high_resolution_clock
    using std::chrono::high_resolution_clock;

    // [time.clock.local], local time
    using std::chrono::local_days;
    using std::chrono::local_seconds;
    using std::chrono::local_t;
    using std::chrono::local_time;

    // [time.clock.cast], time_point conversions
    // using std::chrono::clock_time_conversion;

    // using std::chrono::clock_cast;

    // [time.cal.last], class last_spec
    using std::chrono::last_spec;

    // [time.cal.day], class day
    using std::chrono::day;

    // [time.cal.month], class month
    using std::chrono::month;

    // [time.cal.year], class year
    using std::chrono::year;

    // [time.cal.wd], class weekday
    using std::chrono::weekday;

    // [time.cal.wdidx], class weekday_indexed
    using std::chrono::weekday_indexed;

    // [time.cal.wdlast], class weekday_last
    using std::chrono::weekday_last;

    // [time.cal.md], class month_day
    using std::chrono::month_day;

    // [time.cal.mdlast], class month_day_last
    using std::chrono::month_day_last;

    // [time.cal.mwd], class month_weekday
    using std::chrono::month_weekday;

    // [time.cal.mwdlast], class month_weekday_last
    using std::chrono::month_weekday_last;

    // [time.cal.ym], class year_month
    using std::chrono::year_month;

    // [time.cal.ymd], class year_month_day
    using std::chrono::year_month_day;

    // [time.cal.ymdlast], class year_month_day_last
    using std::chrono::year_month_day_last;

    // [time.cal.ymwd], class year_month_weekday
    using std::chrono::year_month_weekday;

    // [time.cal.ymwdlast], class year_month_weekday_last
    using std::chrono::year_month_weekday_last;

    // [time.cal.operators], civil calendar conventional syntax operators

    // [time.hms], class template hh_mm_ss
    using std::chrono::hh_mm_ss;

    // [time.12], 12/24 hour functions
    using std::chrono::is_am;
    using std::chrono::is_pm;
    using std::chrono::make12;
    using std::chrono::make24;

#ifdef _LIBCPP_ENABLE_EXPERIMENTAL

#  if _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION

    // [time.zone.db], time zone database
    using std::chrono::tzdb;
    using std::chrono::tzdb_list;

    // [time.zone.db.access], time zone database access
    using std::chrono::current_zone;
    using std::chrono::get_tzdb;
    using std::chrono::get_tzdb_list;
    using std::chrono::locate_zone;

    // [time.zone.db.remote], remote time zone database support
    using std::chrono::reload_tzdb;
    using std::chrono::remote_version;

#  endif //  _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION

    // [time.zone.exception], exception classes
    using std::chrono::ambiguous_local_time;
    using std::chrono::nonexistent_local_time;

    // [time.zone.info], information classes
    using std::chrono::local_info;
    using std::chrono::sys_info;

#  if _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION

    // [time.zone.timezone], class time_zone
    using std::chrono::choose;
    using std::chrono::time_zone;

    // [time.zone.zonedtraits], class template zoned_traits
    using std::chrono::zoned_traits;

    // [time.zone.zonedtime], class template zoned_time
    using std::chrono::zoned_time;

    using std::chrono::zoned_seconds;

    // [time.zone.leap], leap second support
    using std::chrono::leap_second;

    // [time.zone.link], class time_zone_link
    using std::chrono::time_zone_link;

#    if 0
    // [time.format], formatting
    using std::chrono::local_time_format;
#    endif
#  endif //  _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION
#endif   // _LIBCPP_ENABLE_EXPERIMENTAL

  } // namespace chrono

#if _LIBCPP_HAS_LOCALIZATION
  using std::formatter;
#endif

  namespace chrono {
    // using std::chrono::parse;

    // calendrical constants
    using std::chrono::last;

    using std::chrono::Friday;
    using std::chrono::Monday;
    using std::chrono::Saturday;
    using std::chrono::Sunday;
    using std::chrono::Thursday;
    using std::chrono::Tuesday;
    using std::chrono::Wednesday;

    using std::chrono::April;
    using std::chrono::August;
    using std::chrono::December;
    using std::chrono::February;
    using std::chrono::January;
    using std::chrono::July;
    using std::chrono::June;
    using std::chrono::March;
    using std::chrono::May;
    using std::chrono::November;
    using std::chrono::October;
    using std::chrono::September;

  } // namespace chrono

} // namespace std
export namespace std::inline literals::inline chrono_literals {
  // [time.duration.literals], suffixes for duration literals
  using std::literals::chrono_literals::operator""h;
  using std::literals::chrono_literals::operator""min;
  using std::literals::chrono_literals::operator""s;
  using std::literals::chrono_literals::operator""ms;
  using std::literals::chrono_literals::operator""us;
  using std::literals::chrono_literals::operator""ns;

  // [using std::literals::chrono_literals::.cal.day.nonmembers], non-member functions
  using std::literals::chrono_literals::operator""d;

  // [using std::literals::chrono_literals::.cal.year.nonmembers], non-member functions
  using std::literals::chrono_literals::operator""y;
} // namespace std::inline literals::inline chrono_literals
