import type { Snippet } from 'svelte'; import type { WindowRect } from '../../molecules/FloatingWindow/FloatingWindow.svelte'; import type { MenubarItem } from '../Menubar/Menubar.svelte'; import type { DesktopIconId, DesktopAppIconTone } from '../../molecules/DesktopAppIcon/DesktopAppIcon.svelte'; export interface DesktopWindow { id: string; title: string; rect: WindowRect; closed?: boolean; icon?: DesktopIconId; tone?: DesktopAppIconTone; kind?: string; pinned?: boolean; closable?: boolean; minimizable?: boolean; maximizable?: boolean; } export interface DesktopApp { id: string; title: string; icon?: DesktopIconId; tone?: DesktopAppIconTone; kind?: string; description?: string; defaultRect?: Partial; } export type DesktopWidgetKind = 'clock' | 'weather' | 'sticky' | 'stats'; export interface DesktopWidget { id: string; kind: DesktopWidgetKind; title?: string; body?: string; x?: number; y?: number; } export type DesktopWallpaper = 'aurora' | 'slate' | 'mint' | 'dusk' | 'paper' | 'custom'; export type DesktopShellHeight = 'sm' | 'md' | 'lg' | 'xl' | 'full'; interface DesktopShellProps { windows?: DesktopWindow[]; activeId?: string | null; wallpaper?: DesktopWallpaper; wallpaperUrl?: string; apps?: DesktopApp[]; widgets?: DesktopWidget[]; menubarItems?: MenubarItem[]; brand?: string; brandMark?: string; userName?: string; userEmail?: string; showMenubar?: boolean; showTaskbar?: boolean; showStart?: boolean; showClock?: boolean; showDesktopIcons?: boolean; showWidgets?: boolean; showWindowCount?: boolean; showCommandPalette?: boolean; showUserMenu?: boolean; showPresence?: boolean; height?: DesktopShellHeight; startOpen?: boolean; commandOpen?: boolean; class?: string; render?: Snippet<[DesktopWindow]>; taskbarLeading?: Snippet; taskbarTrailing?: Snippet; onchange?: (windows: DesktopWindow[]) => void; onactivechange?: (id: string | null) => void; onopen?: (id: string) => void; onclose?: (id: string) => void; onuseraction?: (id: string) => void; onmenu?: (itemId: string, parentId: string) => void; } declare const DesktopShell: import("svelte").Component; type DesktopShell = ReturnType; export default DesktopShell;