namespace ngraph::snippets::pass

namespace pass {

// enums

enum SnippetsNodeType;

// templates

template AlignElementType;
template AssignRegisters;
template CommonFakeQuantizeDecomposition;
template ConvertConstantsToScalars;
template EnumerateNodes;
template FakeQuantizeDecomposition;
template InsertLoad;
template InsertMoveBroadcast;
template InsertStore;
template LoadMoveBroadcastToBroadcastLoad;
template SetScalarCountForLoad;
template SetScalarCountForStore;
template TokenizeSnippets;

// classes

class CommonOptimizations;
class ConvertPowerToPowerStatic;
class TransformConvertToConvertTruncation;

// global functions

void SetSnippetsNodeType(const std::shared_ptr<Node>&, SnippetsNodeType);
SnippetsNodeType GetSnippetsNodeType(const std::shared_ptr<const Node>&);
void SetTopologicalOrder(const std::shared_ptr<Node>&, int64_t);
int64_t GetTopologicalOrder(const std::shared_ptr<const Node>&);
bool AppropriateForSubgraph(const std::shared_ptr<const Node>&);

} // namespace pass