UNPKG

@neosjs/electron-toolkit

Version:

neosjs electron toolkit

409 lines (393 loc) 12.3 kB
import { LogFunctions } from 'electron-log'; import { b as AppPathEnum, D as DownloadOptions, R as RegisterShortcut, c as AutoCheckData, U as UpdaterOptions, d as ShortcutOptions, I as InitOptions } from '../types-GVSlQham.js'; import { EventEmitter } from 'node:events'; import { BrowserWindow, IpcMainInvokeEvent } from 'electron'; declare class AppManager extends EventEmitter { private static instance; maxListeners: number; private static logger; private constructor(); static getInstance(): AppManager; isDevMode(): boolean; isReady(): boolean; relaunch(): void; quit(): void; exit(code?: number): void; getName(): string; setName(name: string): void; getPath(): string; getPathByName(name: AppPathEnum): string; setLogsPath(path: string): void; setPath(name: AppPathEnum, path: string): void; getVersion(): string; setUserModelId(id: string): void; setAutoLaunch(auto: boolean): boolean; getLocale(): string; getLocaleCountryCode(): string; getSystemLocale(): string; getPreferredSystemLanguages(): string[]; } declare class AutoLaunchManager { private static instance; private static logger; private constructor(); static getInstance(): AutoLaunchManager; enable(): Promise<void>; disable(): Promise<void>; isEnabled(): Promise<boolean>; } declare class DevtoolManager { private static instance; private static logger; private constructor(); static getInstance(): DevtoolManager; /** * 安装开发者工具 * @returns {Promise<void>} */ setupDevTools(): Promise<void>; } declare class DownloadManager extends EventEmitter { private static instance; private downloadItems; maxListeners: number; private static logger; private constructor(); /** * 获取单例 */ static getInstance(): DownloadManager; private setupDownloadManager; /** * 获取文件名 * @param {string} name 文件名 * @param {string} mime 文件类型 * @returns {string} 文件名 */ private getFilenameFromMime; /** * 注册监听 * @param {Electron.Session} session 会话 * @param {DownloadOptions} options 选项 */ private registerListener; /** * 下载 * @param {Electron.BrowserWindow} window_ 窗口 * @param {string} url 下载地址 * @param {DownloadOptions} options 选项 * @returns {Promise<any>} 返回值 */ start(window_: BrowserWindow, url: string, options: DownloadOptions): Promise<any>; /** * 暂停 * @param {string} fileUrl 下载地址 */ pause(fileUrl: string): void; /** * 恢复 * @param {string} fileUrl 下载地址 */ resume(fileUrl: string): void; /** * 取消 * @param {string} fileUrl 下载地址 */ cancel(fileUrl: string): void; } declare class EnergyManager { private static instance; private static logger; private constructor(); static getInstance(): EnergyManager; startPowerSaveBlocker(): void; stopPowerSaveBlocker(): void; } declare class FileManager { private static instance; private static ipc; private static logger; private constructor(); static getInstance(): FileManager; /** * 启动文件监听 */ private static setupFileManager; /** * 清理目录 * @param {string} dir 目录 * @returns {Promise<boolean>} 是否清理成功 */ private static cleanupDirectory; /** * 删除用户数据 * @param {string} name 用户数据名称 * @returns {Promise<boolean>} 是否删除成功 */ private static deleteUserData; /** * 保存文件 * @param {string} filePath 文件路径 * @param {string} content 文件内容 * @returns {Promise<void>} 保存结果 */ private static saveFile; /** * 删除文件 * @param {string} filePath 文件路径 * @returns {Promise<void>} 删除结果 */ private static removeFile; } declare enum IpcEvents { DESTROY = "DESTROY",// 销毁下载器 INVOKE = "invoke",// 调用 START_DOWNLOAD = "START_DOWNLOAD",// 开始下载 PROGRESS_DOWNLOAD = "PROGRESS_DOWNLOAD",// 下载进度 PAUSE_DOWNLOAD = "PAUSE_DOWNLOAD",// 暂停下载 RESUME_DOWNLOAD = "RESUME_DOWNLOAD",// 恢复下载 CANCEL_DOWNLOAD = "CANCEL_DOWNLOAD",// 取消下载 COMPLETED_DOWNLOAD = "COMPLETED_DOWNLOAD",// 下载完成 REGISTER_SHORTCUT = "REGISTER_SHORTCUT",// 注册快捷键 CLEAN_CACHE = "CLEAN_CACHE",// 清理缓存 CLEAN_STORAGE = "CLEAN_STORAGE",// 清理存储 SET_WINDOW_SIZE = "SET_WINDOW_SIZE",// 设置窗口大小 SET_WINDOW_ABLE = "SET_WINDOW_ABLE",// 设置窗口可操作 GET_SYSTEM_INFO = "GET_SYSTEM_INFO",// 获取系统信息 GET_SYSTEM_THEME = "GET_SYSTEM_THEME",// 获取系统主题 GET_MEDIA_ACCESS_STATUS = "GET_MEDIA_ACCESS_STATUS",// 获取媒体访问权限状态 ASK_FOR_MEDIA_ACCESS = "ASK_FOR_MEDIA_ACCESS",// 请求媒体访问权限 OPEN_PATH_SYNC = "OPEN_PATH_SYNC",// 打开文件系统 OPEN_PATH_ASYNC = "OPEN_PATH_ASYNC",// 打开文件 OPEN_URL = "OPEN_URL",// 打开URL PATH_EXISTS = "PATH_EXISTS",// 路径是否存在 CLEANUP_DIRECTORY = "CLEANUP_DIRECTORY",// 清理目录 DELETE_USER_DATA = "DELETE_USER_DATA",// 删除用户数据 SAVE_FILE = "SAVE_FILE",// 保存文件 REMOVE_FILE = "REMOVE_FILE",// 删除文件 CHECK_FOR_UPDATES = "CHECK_FOR_UPDATES",// 检查更新 AUTO_CHECK_FOR_UPDATES = "AUTO_CHECK_FOR_UPDATES",// 自动检查更新 DOWNLOAD_UPDATE = "DOWNLOAD_UPDATE",// 下载更新 INSTALL_UPDATE = "INSTALL_UPDATE",// 安装更新 CHECKING_FOR_UPDATE = "checking-for-update", UPDATE_AVAILABLE = "update-available", UPDATE_NOT_AVAILABLE = "update-not-available", UPDATE_DOWNLOADED = "update-downloaded", UPDATE_CANCELLED = "update-cancelled", DOWNLOAD_PROGRESS = "download-progress", UPDATE_ERROR = "error", UPDATE_LOGIN = "login", TITLE_BAR_CHANNEL = "TITLE_BAR_CHANNEL",// 标题栏通道 TITLE_BAR_MAXIMIZE_REPLY_CHANNEL = "TITLE_BAR_MAXIMIZE_REPLY_CHANNEL",// 最大化回复通道 TITLE_BAR_FULLSCREEN_REPLY_CHANNEL = "TITLE_BAR_FULLSCREEN_REPLY_CHANNEL" } declare class IpcManager extends EventEmitter { readyWebContents: WeakSet<Electron.WebContents>; private messageQueue; private static instance; maxListeners: number; private logger; private constructor(); static getInstance(): IpcManager; /** * 发送消息 * @param {IpcEvents} channel 事件名 * @param {Array<any>} args 参数 * @param {WebContents} target 目标 */ send(channel: IpcEvents | string, args?: Array<any>, target?: Electron.WebContents): void; /** * 监听消息 * @param {IpcEvents} channel 事件名 * @param {Function} listener 监听器 */ handle(channel: IpcEvents, listener: (_event: Electron.IpcMainInvokeEvent, ...args: any[]) => any): void; /** * 监听消息一次 * @param {IpcEvents} channel 事件名 * @param {Function} listener 监听器 */ handleOnce(channel: IpcEvents, listener: (_event: IpcMainInvokeEvent, ...args: any[]) => any): void; /** * 发送消息 * @param {IpcEvents} channel 事件名 * @param {any} message 消息 * @param {MessagePortMain[]} transfer 传输 * @param {Electron.WebContents} target 目标 */ postMessage(channel: IpcEvents, message: any, transfer?: Electron.MessagePortMain[], target?: Electron.WebContents): void; } declare class MediaManager { private static instance; private static logger; private static ipc; private constructor(); static getInstance(): MediaManager; /** * 初始化事件处理 */ private static setupMediaManager; /** * 获取媒体访问权限状态 * @param {MediaType} mediaType - 媒体类型 * @returns {MediaAccessStatus} - 媒体访问权限状态 */ private static getMediaAccessStatus; /** * 请求媒体访问权限(摄像头、麦克风) * macOS 需要请求权限 * @param {RequestMediaAccessType} mediaType - 媒体类型 * @returns {Promise<boolean>} - 是否请求成功 */ private static askForMediaAccess; } declare class StorageManager { private static instance; private static logger; private constructor(); static getInstance(): StorageManager; /** * 初始化事件处理 */ private static setupStorageManager; } declare class SystemManager { private static instance; private static appName; private static env; private static ipc; private static logger; private constructor(); static getInstance(): SystemManager; /** * 初始化事件处理 */ private static setupSystemManager; /** * 设置UserAgent */ private static setUserAgent; /** * 注册快捷键 * @param {RegisterShortcut} shortcuts - 快捷键对象 */ registerShortcut(shortcuts: RegisterShortcut): void; /** * 注销快捷键 */ unRegisterAllShortcut(): void; /** * 是否系统资源 */ systemRelease(): void; /** * 忽略SSL证书错误 */ private static ignoreCertificateErrors; /** * 获取系统信息 */ private static getSystemInfo; /** * 获取系统主题 * macOS 获取系统主题 * @returns {Appearance} - 系统主题 */ private static getSystemTheme; } declare class UpdaterManager { private static instance; private static logger; private static ipcManager; private static updater; autoCheckData: AutoCheckData; private constructor(); /** * 获取实例 * @returns {UpdaterManager} 更新器管理器实例 */ static getInstance(): UpdaterManager; /** * 设置更新器 * @param {UpdaterOptions} options 更新器选项 */ setupUpdaterManager(options: UpdaterOptions): void; /** * 设置渲染进程监听 */ private static onRendererListener; /** * 设置更新源 * @param {string} url 更新源 */ private static setFeedURL; /** * 自动更新 * @param {string} url 更新源 */ private static autoCheckForUpdates; /** * 检查更新 * @param {string} url 更新源 */ private static checkForUpdates; /** * 下载更新 */ private static downloadUpdate; } declare class WindowManager { private static instance; private static ipc; private static logger; browserWindow: BrowserWindow | null; private constructor(); /** * 获取单例 */ static getInstance(): WindowManager; /** * 监听渲染进程事件 */ private static onRendererEvent; /** * 监听窗口快捷键 * @param {BrowserWindow | null} window 窗口 * @param {ShortcutOptions} shortcutOptions 快捷键选项 */ private static onWindowShortcuts; private static registerFramelessWindowIpc; /** * 设置浏览器窗口 * @param {BrowserWindow | null} window 窗口 */ setBrowserWindow(window: BrowserWindow | null): void; /** * 初始化 * @param {BrowserWindow | null} window 窗口 * @param {ShortcutOptions} shortcutOptions 快捷键选项 */ setupWindowManager(window: BrowserWindow | null, shortcutOptions?: ShortcutOptions): void; } declare class MainManager { version: string; private static instance; app: AppManager; downloader: DownloadManager; ipc: IpcManager; system: SystemManager; logger: LogFunctions; autoLaunch: AutoLaunchManager; energy: EnergyManager; window: WindowManager; storage: StorageManager; media: MediaManager; file: FileManager; updater: UpdaterManager; devtool: DevtoolManager; private constructor(); static getInstance(): MainManager; init(options?: InitOptions): void; } declare const mainManager: MainManager; export { mainManager as default };