import type { AppManifest, WindowConfig } from "@edenapp/types"; import type { Bounds, PlatformView, WindowingPort } from "../platform/ports"; import type { FloatingWindowController } from "./FloatingWindowController"; import type { TilingController } from "./TilingController"; import { type ViewInfo, type ViewMode } from "./types"; /** * ViewCreator * * Handles creation and injection of views. * Extracted from ViewManager for better separation of concerns. */ export declare class ViewCreator { private readonly basePath; private readonly tilingController; private readonly floatingWindows; private readonly windows; private nextOverlayZIndex; private nextViewId; private readonly fileReader; constructor(basePath: string, tilingController: TilingController, floatingWindows: FloatingWindowController, windows: WindowingPort); /** * Check if a frontend entry points to a remote URL */ isRemoteEntry(entry: string): boolean; /** * Determine whether the app frame should be injected */ shouldInjectAppFrame(windowConfig?: WindowConfig): boolean; /** * Get the CSS injection mode from window config * Returns "full" by default if not specified */ getCSSInjectionMode(windowConfig?: WindowConfig): "full" | "tokens" | "none"; /** * Callback that strips X-Frame-Options and CSP headers from responses. */ private static embeddingHeadersFilter; /** * Inject Eden CSS into the view * Makes design tokens and utilities available to all apps * @param view - The WebContentsView to inject CSS into * @param mode - "full" for complete CSS or "tokens" for only CSS custom properties */ injectEdenCSS(view: PlatformView, mode: "full" | "tokens"): Promise; /** * Inject app frame script into the view * Adds a title bar with close button to each app */ injectAppFrame(view: PlatformView, appId: string, manifestName: string | Record, viewMode: ViewMode, windowConfig?: WindowConfig, bounds?: Bounds): Promise; /** * Calculate view bounds, tile index, and Z-index based on view type and mode */ private calculateViewBounds; /** * Calculate bounds and Z-index for overlay views */ private calculateOverlayBounds; /** * Calculate bounds and Z-index for floating app views */ private calculateFloatingAppBounds; /** * Calculate bounds and tile index for tiled app views */ private calculateTiledAppBounds; /** * Create a view for an app (regular or overlay) * ViewType is determined by manifest.overlay flag */ createView(appId: string, manifest: AppManifest, installPath: string, bounds: Bounds | undefined, existingViews: Iterable, launchArgs?: string[]): ViewInfo; } //# sourceMappingURL=ViewCreator.d.ts.map