import { contextBridge, ipcRenderer } from "electron"; import type { PagedDocumentPayload } from "@md-to-pdf/core"; import type { MarkdownRenderRequest } from "@md-to-pdf/application"; import { DESKTOP_GET_THEME_CSS, DESKTOP_GENERATE_PDF, DESKTOP_LIST_THEMES, DESKTOP_RENDER_MARKDOWN, DESKTOP_SAVE_PDF } from "./channels.js"; contextBridge.exposeInMainWorld("mdToPdfDesktop", { renderMarkdown: (input: MarkdownRenderRequest) => ipcRenderer.invoke(DESKTOP_RENDER_MARKDOWN, input), listThemes: () => ipcRenderer.invoke(DESKTOP_LIST_THEMES), getThemeCss: (themeId: string) => ipcRenderer.invoke(DESKTOP_GET_THEME_CSS, themeId), generatePdf: (payload: PagedDocumentPayload) => ipcRenderer.invoke(DESKTOP_GENERATE_PDF, payload), savePdf: (fileName: string, pdf: Uint8Array) => ipcRenderer.invoke(DESKTOP_SAVE_PDF, fileName, pdf) });