#pragma once
#include 
#include 
class LayoutDocument final : public LayoutBlock {
public:
    explicit LayoutDocument(const Document&, NonnullRefPtr);
    virtual ~LayoutDocument() override;
    const Document& node() const { return static_cast(*LayoutNode::node()); }
    virtual const char* class_name() const override { return "LayoutDocument"; }
    virtual void layout() override;
    const LayoutRange& selection() const { return m_selection; }
    LayoutRange& selection() { return m_selection; }
    void did_set_viewport_rect(Badge, const Rect&);
private:
    LayoutRange m_selection;
};