namespace EE::System

namespace System {

// typedefs

typedef tColor<Float> ColorAf;
typedef tColor<Float> Colorf;
typedef Color ColorA;
typedef std::map<std::string, FileInfo> FileInfoMap;
typedef std::vector<FileInfo> FileInfoList;
typedef TScopedBuffer<Uint8> ScopedBuffer;

// enums

enum LogLevel;

// classes

class Base64;
class BitOp;
class Clock;
class Color;
class Compression;
class Condition;
class ConditionalLock;

template <class T>
class Container;

class DirectoryPack;
class FileInfo;
class FileSystem;
class FunctionString;
class IOStream;
class IOStreamDeflate;
class IOStreamFile;
class IOStreamInflate;
class IOStreamMemory;
class IOStreamPak;
class IOStreamString;
class IOStreamZip;
class IniFile;
class Lock;
class Log;
class LogReaderInterface;
class LuaPattern;
class MD5;
class Mutex;
class Pack;
class PackManager;
class Pak;
class Process;
class RC4;
class RGB;
class RectColors;
class ResourceLoader;

template <class T>
class ResourceManager;

template <class T>
class ResourceManagerMulti;

template <typename T>
class Singleton;

class Sys;

template <typename T>
class TScopedBuffer;

class Thread;
class ThreadLocal;

template <typename T>
class ThreadLocalPtr;

class ThreadPool;
class Time;
class Translator;
class VFS;
class VirtualFileSystem;
class Zip;

template <typename T>
class tColor;

template <typename T>
class tRGB;

} // namespace System