/** * 窗口选项 */ export interface WindowOptions { /** 窗口标题 */ title?: string; /** 窗口宽度 */ width?: number; /** 窗口高度 */ height?: number; /** 窗口 X 坐标 */ x?: number; /** 窗口 Y 坐标 */ y?: number; /** 是否可调整大小 */ resizable?: boolean; /** 是否最小化 */ minimizable?: boolean; /** 是否最大化 */ maximizable?: boolean; /** 是否可关闭 */ closable?: boolean; /** 是否置顶 */ alwaysOnTop?: boolean; /** 是否全屏 */ fullscreen?: boolean; /** 是否显示在任务栏 */ skipTaskbar?: boolean; /** 窗口透明度 (0.0 - 1.0) [Windows] [macOS] */ opacity?: number; /** 背景色 */ backgroundColor?: string; /** 最小宽度 */ minWidth?: number; /** 最小高度 */ minHeight?: number; /** 最大宽度 */ maxWidth?: number; /** 最大高度 */ maxHeight?: number; /** 窗口图标路径 [Windows] [Linux] */ icon?: string; /** 是否显示 */ show?: boolean; /** 是否居中 */ center?: boolean; /** 加载的 URL */ url?: string; } /** * 窗口信息 */ export interface WindowInfo { /** 窗口 ID */ id: number; /** 窗口标题 */ title: string; /** 窗口宽度 */ width: number; /** 窗口高度 */ height: number; /** 窗口 X 坐标 */ x: number; /** 窗口 Y 坐标 */ y: number; /** 是否最大化 */ is_maximized: boolean; /** 是否最小化 */ is_minimized: boolean; /** 是否全屏 */ is_fullscreen: boolean; /** 是否聚焦 */ is_focused: boolean; /** 是否可见 */ is_visible: boolean; } /** * 窗口事件类型(系统窗口事件,由 Rust 层通过 window.event 通道发送) */ export type WindowEventType = 'close' | 'resize' | 'move' | 'minimize' | 'maximize' | 'restore' | 'focus' | 'blur' | 'enter-full-screen' | 'leave-full-screen'; /** * 窗口消息事件类型(由其他窗口通过 sendMessage 发送,或自定义事件) */ export type WindowMessageEventType = 'window.message' | string; /** * BrowserWindow 实例类 */ export declare class BrowserWindow { private id; private eventListeners; constructor(id: number); /** 获取窗口 ID */ getId(): number; /** 关闭窗口 */ close(): Promise; /** 显示窗口 */ show(): Promise; /** 隐藏窗口 */ hide(): Promise; /** 最小化窗口 */ minimize(): Promise; /** 最大化窗口 */ maximize(): Promise; /** 取消最大化 */ unmaximize(): Promise; /** 恢复窗口 */ restore(): Promise; /** 聚焦窗口 */ focus(): Promise; /** 取消聚焦 */ blur(): Promise; /** 是否最大化 */ isMaximized(): Promise; /** 是否最小化 */ isMinimized(): Promise; /** 是否全屏 */ isFullScreen(): Promise; /** 是否聚焦 */ isFocused(): Promise; /** 是否可见 */ isVisible(): Promise; /** 是否可调整大小 */ isResizable(): Promise; /** 设置全屏状态 */ setFullScreen(flag: boolean): Promise; /** 设置窗口标题 */ setTitle(title: string): Promise; /** 获取窗口标题 */ getTitle(): Promise; /** 设置窗口大小 */ setSize(width: number, height: number): Promise; /** 获取窗口大小 */ getSize(): Promise<[number, number]>; /** 设置最小窗口尺寸 */ setMinimumSize(width: number, height: number): Promise; /** 设置最大窗口尺寸 */ setMaximumSize(width: number, height: number): Promise; /** 设置窗口是否可调整大小 */ setResizable(flag: boolean): Promise; /** 设置窗口是否置顶 */ setAlwaysOnTop(flag: boolean): Promise; /** 设置窗口位置 */ setPosition(x: number, y: number): Promise; /** 获取窗口位置 */ getPosition(): Promise<[number, number]>; /** 窗口居中 */ center(): Promise; /** 设置窗口透明度 (0.0 - 1.0) [Windows] [macOS] */ setOpacity(opacity: number): Promise; /** 设置窗口背景色 */ setBackgroundColor(color: string): Promise; /** 设置窗口图标 [Windows] [Linux] */ setIcon(icon: string): Promise; /** 加载本地 HTML 文件 */ loadFile(path: string): Promise; /** 加载远程 URL */ loadURL(url: string): Promise; /** 重新加载当前页面 */ reload(): Promise; /** 设置任务栏进度条 (0.0 - 1.0, -1 隐藏) [Windows] [macOS] */ setProgressBar(progress: number): Promise; /** 设置是否在任务栏中显示 [Windows] */ setSkipTaskbar(flag: boolean): Promise; /** 闪烁任务栏图标提示用户 [Windows] */ flashTaskbar(flag: boolean): Promise; /** 截取窗口内容 */ /** 获取窗口缩放因子 */ scaleFactor(): Promise; /** 获取窗口客户区位置 */ getInnerPosition(): Promise<{ x: number; y: number; }>; /** 获取窗口外部大小(含边框)[通用] */ getOuterSize(): Promise<{ width: number; height: number; }>; /** 是否可最小化 */ isMinimizable(): Promise; /** 设置是否可最小化 */ setMinimizable(flag: boolean): Promise; /** 是否可最大化 */ isMaximizable(): Promise; /** 设置是否可最大化 */ setMaximizable(flag: boolean): Promise; /** 是否可关闭 */ isClosable(): Promise; /** 设置是否可关闭 */ setClosable(flag: boolean): Promise; /** 是否有窗口装饰(边框)[通用] */ isDecorated(): Promise; /** 设置窗口装饰 */ setDecorated(flag: boolean): Promise; /** 设置窗口置底 */ setAlwaysOnBottom(flag: boolean): Promise; /** 请求用户关注 */ requestUserAttention(level?: 'normal' | 'informational' | 'critical'): Promise; /** 设置内容保护(防截图)[通用] */ setContentProtection(enabled: boolean): Promise; /** 设置窗口是否在所有工作区可见 */ setVisibleOnAllWorkspaces(visible: boolean): Promise; /** 设置光标图标 */ setCursorIcon(icon: string): Promise; /** 设置光标位置 */ setCursorPosition(x: number, y: number): Promise; /** 设置光标抓取 */ setCursorGrab(grab: boolean): Promise; /** 设置光标是否可见 */ setCursorVisible(visible: boolean): Promise; /** 窗口直接通信 */ sendMessage(message: any, targetWindow: BrowserWindow): Promise; /** 监听窗口事件(支持系统事件和消息事件)[通用] */ on(event: WindowEventType | WindowMessageEventType, callback: (data?: any) => void): () => void; /** 取消监听窗口事件 */ off(event: WindowEventType | WindowMessageEventType, callback: (data?: any) => void): void; /** 设置事件监听器 */ private setupEventListeners; } /** * BrowserWindow 静态方法 */ export declare const browserWindow: { /** * 创建新窗口 * @param options 窗口选项 * @returns BrowserWindow 实例 */ create(options?: WindowOptions): Promise; /** * 获取所有窗口 * @returns 窗口信息数组 */ getAll(): Promise; /** * 获取当前聚焦的窗口 * @returns 窗口信息或 null */ getFocused(): Promise; /** * 根据 ID 获取窗口 * @param id 窗口 ID * @returns BrowserWindow 实例或 null */ getById(id: number): Promise; /** * 根据 ID 获取窗口 * @param id 窗口 ID * @returns BrowserWindow 实例或 null */ getWindow(id: number): Promise; /** * 获取当前窗口(JS 代码所在的窗口)[通用] * @returns BrowserWindow 实例或 null */ getCurrentWindow(): BrowserWindow | null; /** * 获取当前聚焦的窗口 * @returns BrowserWindow 实例或 null */ getFocusedWindow(): Promise; }; //# sourceMappingURL=browserWindow.d.ts.map