59 lines
1.4 KiB
TypeScript
59 lines
1.4 KiB
TypeScript
/// <reference types="vite/client" />
|
|
|
|
import type {
|
|
PagedDocumentPayload,
|
|
PagedDocumentRenderResult,
|
|
RenderedMarkdownDocument
|
|
} from "@md-to-pdf/core";
|
|
|
|
declare global {
|
|
const __APP_VERSION__: string;
|
|
|
|
interface DesktopPdfResult {
|
|
pdf: Uint8Array;
|
|
pageCount: number;
|
|
echartsErrors: string[];
|
|
mermaidErrors: string[];
|
|
}
|
|
|
|
interface DesktopApplicationBridge {
|
|
renderMarkdown(input: {
|
|
markdown: string;
|
|
language: string;
|
|
}): Promise<RenderedMarkdownDocument>;
|
|
listThemes(): Promise<{
|
|
themes: Array<{
|
|
id: string;
|
|
name: string;
|
|
version: string;
|
|
description: string;
|
|
bundled: boolean;
|
|
source: "bundled" | "local";
|
|
}>;
|
|
}>;
|
|
getThemeCss(themeId: string): Promise<string>;
|
|
generatePdf(payload: PagedDocumentPayload): Promise<DesktopPdfResult>;
|
|
savePdf(fileName: string, pdf: Uint8Array): Promise<boolean>;
|
|
}
|
|
|
|
interface DesktopPdfRuntimeBridge {
|
|
ready(): void;
|
|
onRender(
|
|
listener: (
|
|
requestId: number,
|
|
payload: PagedDocumentPayload
|
|
) => Promise<void> | void
|
|
): () => void;
|
|
complete(
|
|
requestId: number,
|
|
result: PagedDocumentRenderResult
|
|
): void;
|
|
fail(requestId: number, message: string): void;
|
|
}
|
|
|
|
interface Window {
|
|
mdToPdfDesktop?: DesktopApplicationBridge;
|
|
__mdToPdfDesktopPdf?: DesktopPdfRuntimeBridge;
|
|
}
|
|
}
|