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