namespace v5 {
// classes
class BatchNormInference;
class GRUSequence;
class GatherND;
class HSigmoid;
class LSTMSequence;
class LogSoftmax;
class Loop;
class NonMaxSuppression;
class RNNSequence;
class Round;
// global functions
template <class TShape, class TRShape = result_shape_t<TShape>>
std::vector<TRShape> shape_infer(
const GatherND \* op,
const std::vector<TShape>& input_shapes
);
template <class TShape, class TRShape = result_shape_t<TShape>>
std::vector<TRShape> shape_infer(
const ov::op::v5::GRUSequence \* op,
const std::vector<TShape>& input_shapes
);
template <class TShape>
std::vector<result_shape_t<TShape>> shape_infer(
const LSTMSequence \* op,
const std::vector<TShape>& input_shapes
);
template <class T, class TRShape = result_shape_t<T>>
std::vector<TRShape> shape_infer(
const NonMaxSuppression \* op,
const std::vector<T>& input_shapes,
const ITensorAccessor& ta = make_tensor_accessor(),
const bool static_output = !std::is_same<T, PartialShape>::value
);
template <class TShape>
std::vector<result_shape_t<TShape>> shape_infer(
const RNNSequence \* op,
const std::vector<TShape>& input_shapes
);
} // namespace v5