#pragma once #include #include namespace NYql::NPureCalc { class TCompileError; template class IConsumer; template 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 class TProgramCommon; template class TPullStreamProgram; template class TPullListProgram; template class TPushStreamProgram; using IProgramFactoryPtr = TIntrusivePtr; using IWorkerFactoryPtr = std::shared_ptr; using IPullStreamWorkerFactoryPtr = std::shared_ptr; using IPullListWorkerFactoryPtr = std::shared_ptr; using IPushStreamWorkerFactoryPtr = std::shared_ptr; }