import type ImageryTileLayer from "../../../../layers/ImageryTileLayer.js";
import type MapView from "../../../../views/MapView.js";

/**
 * @internal
 * @internal
 */
export interface RotateDimensionsResult {
  /** @internal */
  width: number;
  /** @internal */
  height: number;
}

/**
 * Rotates the dimensions of the image based on the given rotation angle.
 *
 * @param width - The width of the image.
 * @param height - The height of the image.
 * @param rotation - The rotation angle in degrees.
 * @internal
 * @internal
 */
export function rotateDimensions(width: number, height: number, rotation: number): RotateDimensionsResult;

/**
 * Registers a custom pan constraint on the view to restrict panning beyond the boundaries of the image.
 *
 * @param view - The [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) instance to register the pan constraint on.
 * @param image - The [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/) representing the image being displayed in the viewer.
 * @internal
 * @internal
 */
export function registerPanConstraint(view: MapView, image: ImageryTileLayer): void;