import type { DocumentReader } from "./ApiDocument"; import type { IDEncoder } from "./extension"; import type { LinkResolver } from "./LinkResolver"; import type UrlRewriter from "./URLRewriter"; /** * Context object passed to renderers. * * If the Extension is not provided, the renderers will render broken/empty document links and integration fields. */ interface RenderContext { Extension: { DocEncoder: { encodeDocId(documentId: string, fetchUuidOrRelationName: string | undefined, additionalData: (string | undefined)[]): string; }; encoders: { documentLinks: IDEncoder; documentUrls: IDEncoder; integrationFields: IDEncoder; }; } | undefined; LinkResolver: { buildUrl(params: { linkResolver: LinkResolver | undefined; pageType: string; masterLang: string; brokenRoute?: string; docReader?: DocumentReader; }): string | undefined | null; }; urlRewriter: UrlRewriter; emptyStringInsteadOfNull: boolean; } export default RenderContext;