/** * Media layer utilities for the map viewer application. * * @internal * @internal */ import type Extent from "../../geometry/Extent.js"; import type ControlPointsGeoreference from "../../layers/support/ControlPointsGeoreference.js"; import type MapView from "../../views/MapView.js"; import type { MediaElement } from "../../layers/media/types.js"; /** * Creates a georeference for a media element and a view extent. * * @param mediaElement - The media element to create the georeference for. * @param extent - The view extent in which fits the georeference. * @returns The georeference fitting in the view extent. * @internal * @internal */ export function createDefaultControlPointsGeoreference(mediaElement: MediaElement, extent: Extent): Promise; /** * Creates a georeference to be used in a MapView when authoring the source points of the element's georeference. * The resulting georeference has each map point x/y coordinates, pointing to the same pixel coordinates of each corresponding source point. * * @param mediaElement - The media element to create the georeference for. * @returns A georeference with map points in pixels. * @internal * @internal */ export function createLocalModeControlPointsGeoreference(mediaElement: MediaElement): ControlPointsGeoreference | null | undefined; /** * Creates a media transform tools wrapper for a media element. * * @param properties - Properties * @returns A MediaTransformToolsWrapper instance or nil. * @internal * @internal */ export function createMediaTransformToolsWrapper(properties: MediaTransformToolsWrapperProperties): any | null | undefined; /** * MediaTransformToolsWrapperConstructProperties * * @internal * @internal */ export interface MediaTransformToolsWrapperProperties { /** * The MapView instance * * @internal */ view: MapView; /** * The ImageElement or VideoElement * * @internal */ mediaElement: MediaElement; /** * Whether or not to preserve the aspect ration * * @internal */ preserveAspectRatio?: boolean | null; /** * Should snapping be enabled for rotation? * * @internal */ snapRotation?: boolean | null; /** * The advanced mode view and media element * * @internal */ advancedMode: AdvancedMediaTransformToolsWrapperProperties; } /** * AdvancedMediaTransformToolsWrapperConstructProperties * * @internal * @internal */ export interface AdvancedMediaTransformToolsWrapperProperties { /** * The advanced mode MapView instance * * @internal */ view: MapView; /** * The advanced mode ImageElement or VideoElement * * @internal */ mediaElement: MediaElement; }