import CppUtils.Thread.SharedLocker;
import CppUtils;
constexpr SharedMutex::SharedMutex() noexcept;
SharedMutex::SharedMutex(const SharedMutex&) = delete;
auto SharedMutex::operator=(const SharedMutex&) -> SharedMutex& = delete;
SharedMutex::SharedMutex(SharedMutex&&) = delete;
auto SharedMutex::operator=(SharedMutex&&) -> SharedMutex& = delete;
constexpr auto SharedMutex::lock() -> void;
constexpr auto SharedMutex::try_lock() -> bool;
constexpr auto SharedMutex::unlock() -> void;
constexpr auto SharedMutex::lock_shared() -> void;
constexpr auto SharedMutex::try_lock_shared() -> bool;
constexpr auto SharedMutex::unlock_shared() -> void;