namespace EE::UI::CSS
namespace CSS {
// typedefs
typedef UnorderedMap<std::string, AnimationDefinition> AnimationsMap;
typedef std::function<Drawable*(const FunctionString&functionType, const Sizef&size, bool&ownIt, UINode*node)> DrawableImageParserFunc;
typedef std::map<std::string, KeyframesDefinition> KeyframesDefinitionMap;
typedef std::function<std::vector<StyleSheetProperty> const ShorthandDefinition*shorthand, std::string value)> ShorthandParserFunc;
typedef UnorderedMap<Uint32, StyleSheetProperty> StyleSheetProperties;
typedef std::function<bool(const UIWidget*node, int a, int b, const FunctionString&data)> StyleSheetNodeSelector;
typedef std::vector<StyleSheetStyle*> StyleSheetStyleVector;
typedef UnorderedMap<Uint32, StyleSheetVariable> StyleSheetVariables;
typedef UnorderedMap<std::string, TransitionDefinition> TransitionsMap;
// enums
enum AnimationOrigin;
enum AtRuleType;
enum MediaFeature;
enum MediaOrientation;
enum MediaType;
enum PropertyId;
enum PropertyRelativeTarget;
enum PropertyType;
enum ShorthandId;
// structs
struct MediaFeatures;
struct MediaQueryExpression;
struct StructuralSelector;
struct VariableFunctionCache;
// classes
class AnimationDefinition;
class DrawableImageParser;
class ElementDefinition;
class KeyframesDefinition;
class MediaQuery;
class MediaQueryList;
class PropertyDefinition;
class PropertyIdSet;
class PropertyIdSetIterator;
class PropertySpecification;
class ShorthandDefinition;
class StyleSheet;
class StyleSheetLength;
class StyleSheetParser;
class StyleSheetPropertiesParser;
class StyleSheetProperty;
class StyleSheetPropertyAnimation;
class StyleSheetSelector;
class StyleSheetSelectorParser;
class StyleSheetSelectorRule;
class StyleSheetSpecification;
class StyleSheetStyle;
class StyleSheetVariable;
class TimingFunction;
class TransitionDefinition;
// global functions
bool operator==(const AnimationDefinition& a, const AnimationDefinition& b);
bool operator!=(const AnimationDefinition& a, const AnimationDefinition& b);
} // namespace CSS