import type { DesignCapabilities, DesignConfirmGenerationInput, DesignCreateWorkspaceInput, DesignGenerationTask, DesignRenameWorkspaceInput, DesignSubmitMessageInput, DesignWorkspace, DesignWorkspaceBootstrap, DesignWorkspaceEvent, } from '../../shared/image-workspace'; export type DesignWorkspaceEventSubscription = { events: AsyncIterable; close(): void; }; export type DesignWorkspaceEventSubscriptionInput = { workspaceId: string; afterEventId?: string; }; export class DesignWorkspaceModuleError extends Error { readonly status: number; readonly code: string; constructor(status: number, code: string, message: string) { super(message); this.name = 'DesignWorkspaceModuleError'; this.status = status; this.code = code; } } export interface DesignWorkspaceModule { bootstrap(): Promise; getCapabilities(): Promise; createWorkspace(input: DesignCreateWorkspaceInput): Promise; renameWorkspace(input: DesignRenameWorkspaceInput): Promise; getWorkspace(workspaceId: string): Promise; submitMessage(input: DesignSubmitMessageInput): Promise; confirmGeneration(input: DesignConfirmGenerationInput): Promise; listTasks(workspaceId: string): Promise; openWorkspaceEvents?( input: DesignWorkspaceEventSubscriptionInput, ): Promise; closeEventSessions?(): Promise; openAssetContent(workspaceId: string, assetId: string, range?: string): Promise; reset?(): Promise; }