/**
 * @beta
 * @since 4.32
 * @internal
 */
import type KnowledgeGraph from "../../rest/knowledgeGraph/KnowledgeGraph.js";
import type { AbortOptions } from "../../core/promiseUtils.js";
import type { InclusionListDefinition } from "../../layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js";

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

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

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

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

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

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