export {
  PluginCommandRegistry,
  PluginLayoutRegistry,
  PluginMenuRegistry,
  PluginRuntimeRegistry,
  type Disposable,
  type LoadedPlugin,
  type PluginCommandHandler,
  type PluginGatewaySet,
  type PluginLayoutDefinition,
  type PluginLayoutProps,
} from "./registry";
export {
  loadPlugins,
  type IdeaPluginContext,
  type IdeaPluginModule,
  type PluginActivation,
  type PluginLoadFailure,
  type PluginLoadPending,
  type PluginLoadResult,
} from "./loader";
export {
  createPluginServices,
  type BackgroundTaskOutputAttachment,
  type BackgroundTaskRetryResult,
  type BackgroundTaskService,
  type BackgroundTaskStatus,
  type ConfigDocument,
  type ConfigDocumentFormat,
  type ConfigDocumentReadOptions,
  type ConfigDocumentService,
  type ConfigDocumentUpdateOptions,
  type ConfigDocumentWriteResult,
  type ConfigUpdateMode,
  type CommandTaskStatus,
  type DiagnosticMessage,
  type EnvDiagnostic,
  type EnvRequirement,
  type EventHandler,
  type EventService,
  type EventSubscribeOptions,
  type EventSubscription,
  type FileDiagnostic,
  type FileRequirement,
  type PluginServices,
  type PublicEvent,
  type PublicEventType,
  type RunCommandTaskOptions,
  type TerminalOpenOptions,
  type TerminalReattachOptions,
  type TerminalReattachResult,
  type TerminalService,
  type TerminalSession,
  type ToolchainDiagnostic,
  type ToolchainDiagnosticRequest,
  type ToolDiagnostic,
  type ToolingService,
  type ToolRequirement,
  type ProjectConvention,
  type ProjectModule,
  type ProjectStructure,
  type ProjectStructureEntry,
  type ProjectStructureEntryKind,
  type WorkspaceBinaryFile,
  type WorkspaceDirEntry,
  type WorkspaceDirectoryListing,
  type WorkspaceResolvedPath,
  type WorkspaceStat,
  type WorkspaceStructureQuery,
  type WorkspaceTextFile,
  type WorkspaceWatch,
  type WorkspaceWatchEvent,
  type WorkspaceWatchHandler,
  type WorkspaceProject,
  type WorkspaceService,
} from "./services";
export { evaluateWhen, type WhenContext, type WhenEvalResult, type WhenVariable } from "./when";
