namespace batch_util {
// global functions
void mark_batch(
const std::shared_ptr<ov::opset1::Parameter>& parameter,
P2Btype& map,
const std::unordered_set<size_t>& batches
);
void mark_no_batch(
const std::shared_ptr<ov::opset1::Parameter>& parameter,
P2Btype& map
);
void mark_layout_independent_batch(
const std::shared_ptr<ov::opset1::Parameter>& parameter,
const std::shared_ptr<ov::Node>& result,
P2Btype& map
);
void mark_with_unique_dimension_labels(
const std::shared_ptr<Model>& m,
const ov::DimensionTracker& dt
);
void restore_original_dimensions(
const std::map<std::shared_ptr<ov::opset1::Parameter>, ov::PartialShape>& parameter_to_shape,
bool leave_batch_dynamic = true
);
bool check_batch_tracks_through_all_the_nodes(const std::shared_ptr<ov::Model>& m);
P2Btype find_batch(const std::shared_ptr<ov::Model>& m);
bool detach_detection_output(const std::shared_ptr<ov::Model>& f);
} // namespace batch_util