import { BrowserWindow } from "electron";
import { EventEmitter } from "events";
import { BackendManager } from "../process-manager/BackendManager";
import { ViewManager } from "../view-manager/ViewManager";
import { CommandRegistry } from "./CommandRegistry";
import { EventSubscriberManager } from "./EventSubscriberManager";
import { PermissionRegistry } from "./PermissionRegistry";
/**
 * IPCBridge
 *
 * Central communication hub for IPC messages between:
 * - Main process
 * - Utility processes (app backends)
 * - WebContentsViews (app frontends)
 */
export declare class IPCBridge extends EventEmitter {
    private backendManager;
    private commandRegistry;
    private viewManager;
    eventSubscribers: EventSubscriberManager;
    private eventHandler;
    private mainWindow;
    private runningAppIds;
    private pendingCommands;
    constructor(backendManager: BackendManager, commandRegistry: CommandRegistry, permissionRegistry: PermissionRegistry, viewManager: ViewManager);
    /**
     * Set the main window for shell communication
     */
    setMainWindow(window: BrowserWindow): void;
    /**
     * Get the main window instance
     */
    getMainWindow(): BrowserWindow | null;
    /**
     * Setup IPC handlers for renderer processes
     */
    private setupIPCHandlers;
    /**
     * Setup handlers for backend utility process messages
     */
    private setupBackendMessageHandlers;
    /**
     * Helper to send response to backend
     */
    private sendBackendResponse;
    /**
     * Handle shell commands (app management, etc.)
     */
    private handleShellCommand;
    /**
     * Provide running-app updates from the AppManager
     */
    updateRunningApps(appIds: Iterable<string>): void;
    getRunningAppIds(): string[];
    /**
     * Cleanup
     */
    destroy(): void;
}
//# sourceMappingURL=IPCBridge.d.ts.map