Я согласен с комментариями о том, что вашему дизайну может потребоваться некоторая работа.Вы не можете использовать класс в другом классе без оператора импорта, который каким-то образом ссылается на него - даже если вы просто импортируете интерфейс, который реализует класс.
Самый гибкий способ справиться с этимсостоит в том, чтобы функциональный объект передавался объекту, который нуждается в нем, а не заставлял этот объект создавать сам экземпляр.Это позволит вам при необходимости заменить другую реализацию (например, вы можете использовать фиктивный экземпляр для модульного тестирования или вам может потребоваться немного другая функциональность, оптимизированная для мобильного устройства).
Вы можете передать экземпляр либо в Конструкторе, либо использовать свойство (которое даст вам свободу изменять реализацию во время выполнения).