import numpy as np


class ImageRotationUtils:
    @staticmethod
    def rotate_image(
        image: np.ndarray,
        angle: float,
        center: tuple[float, float] | None = None,
    ) -> np.ndarray:
        raise NotImplementedError

    @staticmethod
    def get_rotation_matrix(
        angle: float,
        center: tuple[float, float],
    ) -> np.ndarray:
        raise NotImplementedError

    @staticmethod
    def rotate_points(
        points: np.ndarray,
        angle: float,
        center: tuple[float, float],
    ) -> np.ndarray:
        raise NotImplementedError

    @staticmethod
    def normalize_angle(angle: float) -> float:
        raise NotImplementedError

    @staticmethod
    def angle_difference(angle1: float, angle2: float) -> float:
        raise NotImplementedError

    @staticmethod
    def interpolate_angles(
        angles: list[float],
        weights: list[float] | None = None,
    ) -> float:
        raise NotImplementedError

