import type ImageryTileLayer from "@arcgis/core/layers/ImageryTileLayer.js";
import type Accessor from "@arcgis/core/core/Accessor.js";
import type { AbortOptions } from "@arcgis/core/core/promiseUtils.js";

export interface NonPanoramicMediaProperties extends Partial<Pick<NonPanoramicMedia, "autoLoad" | "customParameters" | "datasetFormat" | "url">> {}

/** @internal */
export default class NonPanoramicMedia extends Accessor {
  /** @param value */
  static isNonPanoramicMedia(value: unknown): value is NonPanoramicMedia;
  constructor(properties: NonPanoramicMediaProperties);
  /** @default false */
  accessor autoLoad: boolean;
  accessor customParameters: Record<string, string> | undefined;
  accessor datasetFormat: string | undefined;
  get layer(): ImageryTileLayer | undefined;
  get size(): [number, number] | undefined;
  accessor url: string | undefined;
  destroy(): void;
  /** @param options */
  load(options?: AbortOptions): Promise<{
      layer: ImageryTileLayer;
      size: [number, number] | undefined;
  }>;
}