@neosjs/electron-toolkit
Version:
neosjs electron toolkit
409 lines (393 loc) • 12.3 kB
text/typescript
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.cjs';
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 };