#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_PROPERTY_NODE_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_PROPERTY_NODE_H_
#include <algorithm>
#include <iosfwd>
#include "base/check_op.h"
#include "base/dcheck_is_on.h"
#include "cc/trees/property_tree.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/heap/member.h"
#include "third_party/blink/renderer/platform/json/json_values.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
#include "third_party/blink/renderer/platform/wtf/ref_counted.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#if DCHECK_IS_ON()
#include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
#endif
namespace blink {
enum class PaintPropertyChangeType : unsigned char { … };
PLATFORM_EXPORT const char* PaintPropertyChangeTypeToString(
PaintPropertyChangeType);
class PLATFORM_EXPORT PaintPropertyNode
: public GarbageCollected<PaintPropertyNode> { … };
template <typename NodeTypeOrAlias, typename NodeType>
class PaintPropertyNodeBase : public PaintPropertyNode { … };
#if DCHECK_IS_ON()
class PLATFORM_EXPORT PropertyTreePrinter { … };
#endif
inline std::ostream& operator<<(std::ostream& os,
const PaintPropertyNode& node) { … }
inline std::ostream& operator<<(std::ostream& os,
PaintPropertyChangeType change) { … }
}
#endif