import type { AppInstance, LaunchResult, ProcessMetricsSnapshot, ViewBounds } from "@edenapp/types"; import type { ExecutionContext } from "../execution"; import type { ProcessManager } from "./ProcessManager"; export declare class ProcessHandler { private executionContext; private processManager; constructor(processManager: ProcessManager, executionContext: ExecutionContext); /** * Launch an application instance. * Requires "process/manage" permission. */ handleLaunchApp(args: { appId: string; bounds?: ViewBounds; }): Promise; /** * Stop a running application instance. * Requires "process/manage" permission. */ handleStopApp(args: { appId: string; }): Promise<{ success: boolean; }>; /** * Stop the caller app instance. * No explicit permission required - this endpoint only allows self-exit. */ handleExitApp(args: { _callerAppId?: string; }): Promise<{ success: boolean; }>; /** * List all running application processes. * Requires "process/read" permission. * @param showHidden - If true, includes overlay apps (hidden by default) */ handleListApps(args: { showHidden?: boolean; }): Promise; /** * Return CPU and memory metrics for running Eden apps. * Requires "process/read" permission. * @param showHidden - If true, includes overlay apps and backend-only apps * @param pollingTimeoutMs - How long main should keep the shared sampler alive * @param waitForAccurateCpu - If false, returns the current sample immediately, * even before Electron has a full CPU interval */ handleMetrics(args: { showHidden?: boolean; pollingTimeoutMs?: number; waitForAccurateCpu?: boolean; }): Promise; private assertCanStop; } //# sourceMappingURL=ProcessHandler.d.ts.map