#pragma once #include <util/generic/fwd.h> #include <memory> namespace NYql::NPureCalc { class TCompileError; template <typename> class IConsumer; template <typename> class IStream; class IProgramFactory; class IWorkerFactory; class IPullStreamWorkerFactory; class IPullListWorkerFactory; class IPushStreamWorkerFactory; class IWorker; class IPullStreamWorker; class IPullListWorker; class IPushStreamWorker; class TInputSpecBase; class TOutputSpecBase; class IProgram; template <typename, typename, typename> class TProgramCommon; template <typename, typename> class TPullStreamProgram; template <typename, typename> class TPullListProgram; template <typename, typename> class TPushStreamProgram; using IProgramFactoryPtr = TIntrusivePtr<IProgramFactory>; using IWorkerFactoryPtr = std::shared_ptr<IWorkerFactory>; using IPullStreamWorkerFactoryPtr = std::shared_ptr<IPullStreamWorkerFactory>; using IPullListWorkerFactoryPtr = std::shared_ptr<IPullListWorkerFactory>; using IPushStreamWorkerFactoryPtr = std::shared_ptr<IPushStreamWorkerFactory>; }