#ifndef V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_
#define V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_
#include <deque>
#include <memory>
#include <optional>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include "include/v8-profiler.h"
#include "src/base/platform/time.h"
#include "src/execution/isolate.h"
#include "src/objects/fixed-array.h"
#include "src/objects/hash-table.h"
#include "src/objects/heap-object.h"
#include "src/objects/js-objects.h"
#include "src/objects/literal-objects.h"
#include "src/objects/objects.h"
#include "src/objects/string.h"
#include "src/objects/visitors.h"
#include "src/profiler/strings-storage.h"
#include "src/strings/string-hasher.h"
#ifdef V8_ENABLE_HEAP_SNAPSHOT_VERIFY
#include "src/heap/reference-summarizer.h"
#endif
namespace v8::internal {
class AllocationTraceNode;
class HeapEntry;
class HeapProfiler;
class HeapSnapshot;
class HeapSnapshotGenerator;
class IsolateSafepointScope;
class JSArrayBuffer;
class JSCollection;
class JSGeneratorObject;
class JSGlobalObject;
class JSGlobalProxy;
class JSPromise;
class JSWeakCollection;
struct EntrySourceLocation { … };
class HeapGraphEdge { … };
class HeapEntry { … };
class HeapSnapshot { … };
class HeapObjectsMap { … };
HeapThing;
class HeapEntriesAllocator { … };
class SnapshottingProgressReportingInterface { … };
class V8_EXPORT_PRIVATE V8HeapExplorer : public HeapEntriesAllocator { … };
class NativeObjectsExplorer { … };
class HeapEntryVerifier;
class HeapSnapshotGenerator : public SnapshottingProgressReportingInterface { … };
class OutputStreamWriter;
class HeapSnapshotJSONSerializer { … };
}
#endif