47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
// Electron API 类型声明
|
||
interface ElectronPrinterInfo {
|
||
name: string;
|
||
displayName?: string;
|
||
description?: string;
|
||
status?: number;
|
||
isDefault?: boolean;
|
||
options?: Record<string, string>;
|
||
}
|
||
|
||
interface ElectronAPI {
|
||
fetchPdf: (
|
||
pdfUrl: string
|
||
) => Promise<{ success: boolean; data?: string; error?: string }>;
|
||
printPdf: (
|
||
pdfUrl: string,
|
||
options?: { printerName?: string; duplex?: boolean }
|
||
) => Promise<{ success: boolean; error?: string }>;
|
||
getPrinters: () => Promise<{
|
||
success: boolean;
|
||
printers?: ElectronPrinterInfo[];
|
||
error?: string;
|
||
}>;
|
||
startIdCardListen: () => Promise<any>;
|
||
stopIdCardListen: () => Promise<any>;
|
||
onIdCardData: (callback: (data: any) => void) => void;
|
||
onIdCardError: (callback: (error: any) => void) => void;
|
||
log: (level: string, message: any) => void;
|
||
removeIdCardListeners: () => void;
|
||
restartApp: () => void;
|
||
quitApp: () => void;
|
||
// 读取本地文件并返回 base64(如果失败返回 { success:false, error })
|
||
readLocalFile: (
|
||
filePath: string
|
||
) => Promise<{
|
||
success: boolean;
|
||
data?: string;
|
||
mime?: string;
|
||
error?: string;
|
||
}>;
|
||
// 成功时返回 { success:true, data: base64String, mime?: mimeType }
|
||
}
|
||
|
||
interface Window {
|
||
electronAPI: ElectronAPI;
|
||
}
|