/**
 * Utilities to visualize the data model of a Knowledge Graph Service.
 *
 * NOTE TO DEVS
 * MINIMIZE USE OF INTERNAL SDK ACCESS!
 * To the maximum extent possible, ArcGIS Knowledge Studio should use the same public interface as
 * PS/3rd part developers.
 *
 * @experimental
 * @internal
 */
import type KnowledgeGraph from "../../rest/knowledgeGraph/KnowledgeGraph.js";

/**
 * @experimental
 * @since 5.0
 * @internal
 */
export interface DataModelViewProperties {
  /** @since 5.0 */
  container: HTMLDivElement;
  /** @since 5.0 */
  kg: KnowledgeGraph;
}

/**
 * @experimental
 * @since 5.0
 * @internal
 */
export interface DataModelViewReturnType {
  /** @since 5.0 */
  load: () => Promise<void>;
  /** @since 5.0 */
  destroy: () => void;
}

/**
 * @param properties - The options object for the datamodel view.
 * @returns An object with load and destroy functions for the data model view.
 * @since 5.0
 * @experimental
 * @internal
 */
export function getDataModelView(properties: DataModelViewProperties): DataModelViewReturnType;