namespace ov::op::util::rfft_common_validation

namespace rfft_common_validation {

// enums

enum RFFTKind;

// global functions

template <class T>
void validate_input_rank(
    const ov::op::util::FFTBase \* op,
    const T& input_shape,
    const T& axes_shape,
    size_t input_rank,
    RFFTKind rfft_kind
    );

template <class T>
void validate_axes(
    const ov::op::util::FFTBase \* op,
    const T& axes_shape,
    std::vector<int64_t>& axes,
    size_t input_rank,
    bool axes_are_known,
    RFFTKind rfft_kind
    );

template <class T>
void validate_signal_size(
    const ov::op::util::FFTBase \* op,
    const T& axes_shape,
    const T& signal_size_shape
    );

template <class T>
void shape_validation(
    const ov::op::util::FFTBase \* op,
    const std::vector<T>& input_shapes,
    std::vector<int64_t>& axes,
    bool axes_are_known,
    RFFTKind rfft_kind
    );

} // namespace rfft_common_validation