import { DesktopSurface } from './Desktop'; import { CompositorClient, CompositorConfiguration, CompositorSurface } from './index'; import Session from './Session'; export interface UserShellApiEvents { clientCreated?: (applicationClient: CompositorClient) => void; clientDestroyed?: (applicationClient: CompositorClient) => void; unresponsive?: (applicationClient: CompositorClient, unresponse: boolean) => void; notify?: (variant: 'warn' | 'info' | 'error', message: string) => void; sceneRefresh?: (sceneId: string) => void; clientSurfaceCreated?: (compositorSurface: CompositorSurface) => void; clientSurfaceDestroyed?: (compositorSurface: CompositorSurface) => void; title?: (compositorSurface: CompositorSurface, title: string) => void; appId?: (compositorSurface: CompositorSurface, appId: string) => void; active?: (compositorSurface: CompositorSurface, active: boolean) => void; } export interface UserShellApiActions { initScene(sceneId: string, canvas: HTMLCanvasElement): void; refresh(): void; destroyScene(sceneId: string): void; setUserConfiguration(userConfiguration: Partial): void; closeClient(applicationClient: Pick): void; activateSurface(compositorSurface: CompositorSurface): void; } export interface UserShellApi { events: UserShellApiEvents; actions: UserShellApiActions; } export declare function toCompositorSurface(desktopSurface: DesktopSurface): CompositorSurface; export declare function createUserShellApi(session: Session): UserShellApi;