namespace sys

namespace sys {

// enums

bitflag enum CppFlags;
enum CppKind;
enum CpuKind;
bitflag enum OsFlags;
enum OsKind;
enum RegKeyAccess;
enum RegStdKey;
enum RegValueType;

// structs

struct SystemInfo;

// classes

class Event;
class Lock;
class NotificationEvent;
class RegKey;
class Thread;
class Timer;

// global variables

sys.SystemInfo const g_systemInfo;

// properties

string_t indexed property g_env(string_t name);

// global functions

uintptr_t getCurrentThreadId();
uint_t getCurrentProcessId();
string_t errorcode getProcessImageName(uint_t pid);
void sleep(uint32_t timeout);
uint64_t getTimestamp();
uint64_t getPreciseTimestamp();

string_t formatTimestamp(
    uint64_t timestamp,
    string_t format
);

string_t formatTimestamp(
    uint64_t timestamp,
    int timeZone,
    string_t format
);

} // namespace sys