#pragma once

#include <memory>

#include "AbstractApp.h"

class AbstractUIInterface;

class AbstractDesktopApp
{
public:
    AbstractDesktopApp() = default;
    virtual ~AbstractDesktopApp() = default;

    virtual AbstractApp* getMainApplication() const = 0;

    virtual AbstractUIInterface* getUiInterface() const = 0;
};

using AbstractDesktopAppPtr = std::shared_ptr<AbstractDesktopApp>;
