/**
 * @experimental
 * @since 4.32
 * @internal
 */
import type KnowledgeGraph from "../../rest/knowledgeGraph/KnowledgeGraph.js";
import type { InclusionModeDefinitionOptimizedGeometry } from "./generalSharedKgUtils.js";
import type { AbortOptions } from "../../core/promiseUtils.js";

/**
 * @experimental
 * @internal
 */
export interface SerializedResourceURLs {
  /** @experimental */
  entitiesUrl?: string | null;
  /** @experimental */
  relationshipsUrl?: string | null;
}

/**
 * @param serializedResourceURLs
 * @param options
 * @experimental
 * @internal
 */
export function fetchAndConvertSerializedLinkChart(serializedResourceURLs: SerializedResourceURLs, options?: AbortOptions): Promise<InclusionModeDefinitionOptimizedGeometry>;

/**
 * @param idCollectionsUrl
 * @param generateAllSublayers
 * @param options
 * @experimental
 * @internal
 */
export function fetchAndConvertSerializedKnowledgeIdMap(idCollectionsUrl: string, generateAllSublayers?: boolean, options?: AbortOptions): Promise<InclusionModeDefinitionOptimizedGeometry>;

/**
 * @experimental
 * @internal
 */
export interface SerializedFeatureCollections {
  /** @experimental */
  entitiesFC: Uint8Array<ArrayBuffer>;
  /** @experimental */
  relationshipsFC: Uint8Array<ArrayBuffer>;
}

/**
 * @param inclusionDefinition
 * @param kg
 * @param endpointMap
 * @experimental
 * @internal
 */
export function serializeInclusionDefinitionToAllPbf(inclusionDefinition: InclusionModeDefinitionOptimizedGeometry, kg: KnowledgeGraph, endpointMap: Map<string, [
    string,
    string
]>): Promise<SerializedFeatureCollections>;

/**
 * @param inclusionDefinition
 * @experimental
 * @internal
 */
export function serializeInclusionDefinitionToIdCollectionsMapPbf(inclusionDefinition: InclusionModeDefinitionOptimizedGeometry): Promise<Uint8Array<ArrayBuffer>>;