@neosjs/electron-toolkit
Version:
neosjs electron toolkit
276 lines (265 loc) • 7.44 kB
text/typescript
import { Logger } from 'electron-log';
import { D as DownloadOptions, M as MediaType, a as MediaAccessStatus, A as Appearance, S as SystemInfo } from '../types-GVSlQham.cjs';
import { BrowserWindow } from 'electron';
type EventType = string | symbol;
type Handler<T = unknown> = (event: T) => void;
type WildcardHandler<T = Record<string, unknown>> = (type: keyof T, event: T[keyof T]) => void;
type GenericEventHandler = Handler<any> | WildcardHandler<any>;
declare class NeosEmitter<Events extends Record<EventType, unknown>> {
private events;
constructor();
/**
* 订阅/监听事件
*
* @param type
* @param handler
*/
on<Key extends keyof Events>(type: Key, handler: GenericEventHandler): any;
/**
* 监听一次事件
*
* @param type
* @param handler
*/
once<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): any;
/**
* 发布事件
*
* @param type
* @param data
*/
emit<Key extends keyof Events>(type: Key, data?: Events[Key]): any;
/**
* 关闭事件监听
*
* @param type
* @param handler
*/
off<Key extends keyof Events>(type: Key, handler?: GenericEventHandler): any;
/**
* 销毁事件监听
*/
destroy(): void;
}
declare class DownloadManager extends NeosEmitter<Record<string, unknown>> {
private static instance;
private constructor();
static getInstance(): DownloadManager;
private _emitEvents;
/**
* 开始下载
* @param {string} url 下载地址
* @param {DownloadOptions} options 下载选项
* @returns {Promise<any>} 下载任务
*/
start: (url: string, options: DownloadOptions) => Promise<any>;
/**
* 暂停下载
* @param {string} fileUrl 下载地址
* @returns {DownloadManager} 下载管理器
*/
pause: (fileUrl: string) => DownloadManager;
/**
* 取消下载
* @param {string} fileUrl 下载地址
* @returns {DownloadManager} 下载管理器
*/
cancel: (fileUrl: string) => DownloadManager;
/**
* 恢复下载
* @param {string} fileUrl 下载地址
* @returns {DownloadManager} 下载管理器
*/
resume: (fileUrl: string) => DownloadManager;
/**
* 移除所有监听
* @returns {DownloadManager} 下载管理器
*/
destroy: () => void;
}
declare class FileManager {
private static instance;
private constructor();
static getInstance(): FileManager;
/**
* 打开文件或文件夹
* @param {string} path - 文件或文件夹路径
*/
openPath: (path: string) => any;
/**
* 打开文件或文件夹(异步)
* @param {string} path - 文件或文件夹路径
*/
openPathAsync: (path: string) => Promise<any>;
/**
* 路径是否存在
* @param {string} path - 文件或文件夹路径
*/
pathExists: (path: string) => Promise<boolean>;
/**
* 清理目录
* @param {string} dir - 目录路径
*/
cleanupDirectory: (dir: string) => Promise<boolean>;
/**
* 删除用户数据
* @param {string} name - 用户数据名称
*/
deleteUserData: (name: string) => Promise<boolean>;
/**
* 保存文件
* @param {string} filePath - 文件路径
* @param {string} content - 文件内容
*/
saveFile: (filePath: string, content: string) => Promise<void>;
/**
* 删除文件
* @param {string} filePath - 文件路径
*/
removeFile: (filePath: string) => Promise<void>;
}
declare class MediaManager {
private static instance;
private constructor();
static getInstance(): MediaManager;
/**
* 获取媒体访问权限状态
* @param {MediaType} mediaType - 媒体类型
* @returns {Promise<MediaAccessStatus>} 媒体访问权限状态
*/
getMediaAccessStatus: (mediaType: MediaType) => Promise<MediaAccessStatus>;
/**
* 请求媒体访问权限
* @param {MediaType} mediaType - 媒体类型
* @returns {Promise<boolean>} 是否请求成功
*/
askForMediaAccess: (mediaType: MediaType) => Promise<boolean>;
}
declare class StorageManager {
private static instance;
private constructor();
static getInstance(): StorageManager;
/**
* 清理系统缓存
* @returns {Promise<void>} 清理系统缓存
*/
clearCache: () => Promise<void>;
/**
* 清理系统存储
* @param {any} options 清理系统存储选项
*/
cleanStorage: (options?: any) => void;
}
declare class SystemManager {
private static instance;
private constructor();
static getInstance(): SystemManager;
/**
* 获取系统主题
* @returns {Promise<Appearance>} 系统主题
*/
getSystemTheme: () => Promise<Appearance>;
/**
* 获取系统信息
* @returns {Promise<SystemInfo>} 系统信息
*/
getSystemInfo: () => Promise<SystemInfo>;
/**
* 打开URL
* @param {string} url - URL
*/
openURL: (url: string) => void;
}
declare class UpdaterManager extends NeosEmitter<Record<string, unknown>> {
private static instance;
private constructor();
/**
* 获取实例
* @returns {UpdaterManager}
*/
static getInstance(): UpdaterManager;
/**
* 自动更新
* @returns {Promise<void>}
*/
autoCheckForUpdates: (url: string) => Promise<void>;
/**
* 检查更新
* @param {string} url 更新源
* @returns {Promise<void>}
*/
checkForUpdates: (url: string) => Promise<void>;
/**
* 下载更新
* @returns {Promise<void>}
*/
downloadUpdate: () => Promise<void>;
/**
* 安装更新
* @returns {Promise<void>}
*/
installUpdate: () => Promise<void>;
/**
* 销毁
*/
destroy: () => void;
}
declare class WindowManager {
private static instance;
private constructor();
static getInstance(): WindowManager;
/**
* 设置窗口大小
* @param {number} width - 宽度
* @param {number} height - 高度
*/
setSize: (width: number, height: number) => void;
/**
* 设置窗口可操作
* @param {string} type - 类型
* @param {boolean} flag - 标志
* @param {BrowserWindow} win - 窗口
*/
setAble: (type: string, flag?: boolean, win?: BrowserWindow) => boolean;
/**
* 设置窗口居中
*/
center: () => void;
/**
* 设置窗口最大化
*/
maximize: () => void;
/**
* 设置窗口最小化
*/
minimize: () => void;
/**
* 设置窗口关闭
*/
closeWindow: () => void;
/**
* 设置窗口全屏
*/
fullscreen: () => void;
/**
* 设置窗口退出全屏
*/
exitFullscreen: () => void;
}
declare class RendererManager {
version: string;
private static instance;
logger: Logger;
downloadManager: DownloadManager;
storageManager: StorageManager;
windowManager: WindowManager;
systemManager: SystemManager;
mediaManager: MediaManager;
fileManager: FileManager;
updaterManager: UpdaterManager;
emitter: NeosEmitter<Record<EventType, unknown>>;
private constructor();
static getInstance(): RendererManager;
}
declare const rendererManager: RendererManager;
export { rendererManager as default };