/**
 * xopc Extension SDK
 *
 * Official SDK for developing xopc extensions.
 * Import types and utilities from this module:
 *
 * @example
 * import type { ExtensionApi, ExtensionDefinition } from 'xopc/extension-sdk';
 */
export type { ExtensionDefinition, ExtensionModule, ExtensionKind, ExtensionApi, ExtensionLogger, ExtensionManifest, ExtensionRecord, ExtensionRegistry, ResolvedExtensionConfig, ExtensionRuntime, ExtensionCliRegistration, } from '../types/index.js';
export type { AgentTool, AgentToolResult, AgentToolUpdateCallback, ToolExecutionStartEvent, ToolExecutionUpdateEvent, ToolExecutionEndEvent, } from '../types/index.js';
export type { ExtensionHookEvent, ExtensionHookHandler, HookOptions, HookAgentContext, AgentMessage, ContextEvent, ContextResult, InputEvent, InputResult, TurnEvent, TurnResult, HookHandlerMap, HookExecutionMode, HookBeforeModelResolveEvent, HookBeforeModelResolveResult, HookBeforePromptBuildEvent, HookBeforePromptBuildResult, HookLlmInputEvent, HookLlmOutputEvent, HookInboundClaimEvent, HookInboundClaimResult, HookBeforeResetEvent, HookBeforeResetResult, HookBeforeMessageWriteEvent, HookBeforeMessageWriteResult, HookTurnStartEvent, HookTurnEndEvent, HookToolExecutionStartEvent, HookToolExecutionUpdateEvent, HookToolExecutionEndEvent, HookContext, BeforeAgentStartContext, BeforeAgentStartResult, AgentEndContext, WebchatTurnCompleteEvent, BeforeCompactionContext, AfterCompactionContext, MessageReceivedContext, MessageSendingContext, MessageSendingResult, MessageSentContext, BeforeToolCallContext, BeforeToolCallResult, AfterToolCallContext, SessionStartContext, SessionEndContext, GatewayStartContext, GatewayStopContext, } from '../types/index.js';
export type { EventMap, RequestMap, EventHandler, EventHandlerMeta, RequestHandler, RequestHandlerMeta, WildcardEventHandler, WildcardHandlerMeta, TypedEventBusOptions, RequestOptions, } from '../types/index.js';
export type { ProviderPlugin, ProviderModelDefinition, ProviderCapabilities, ProviderStreamParams, ProviderStreamChunk, ProviderCompleteParams, ProviderResponse, ProviderRegistry, BUILTIN_PROVIDERS, BuiltinProviderId, } from '../types/index.js';
export type { ProviderConfig, ModelConfig, OAuthConfig, OAuthCallbacks, OAuthCredentials, FlagConfig, FlagValue, ShortcutConfig, ShortcutHandler, } from '../types/index.js';
export type { TuiExtensionHostContract, TuiExtensionRegistrar, TuiAutocompleteProvider, TuiAutocompleteSuggestion, TuiToolRenderer, TuiToolRenderContext, TuiSlashCommandHandler, TuiNotifyLevel, } from '../types/index.js';
export type { SafetyCheckResult, SecurityConfig, ExtensionSourceOrigin, ProvenanceInfo, } from '../security.js';
export type { SlotKey, SlotClaim, SlotConfig, } from '../slots.js';
export type { DiagnosticLevel, ExtensionDiagnostic, ExtensionLoaderCache, } from '../diagnostics.js';
export type { ChannelPlugin, ChannelPluginInitOptions, ChannelPluginStartOptions, } from '../../channels/plugin-types.js';
export type { HttpRequestHandler, HttpRequest, HttpResponse, } from '../types/index.js';
export type { ExtensionCommand, ExtensionCommandHandler, ExtensionCommandContext, ExtensionCommandResult, ExtensionReloadHandler, ExtensionReloadResult, ExtensionReloadRegistration, } from '../types/index.js';
export type { ExtensionService, } from '../types/index.js';
export type { GatewayMethodHandler, } from '../types/index.js';
export { TypedEventBus } from '../typed-event-bus.js';
export { ExtensionRegistryImpl } from '../loader.js';
export { ProviderPluginRegistry, getProviderRegistry } from '../../providers/plugin-registry.js';
export { SlotRegistry, getSlotRegistry, registerSlotType } from '../slots.js';
export { HOOK_EXECUTION_MODES } from '../types/hooks.js';
export { defineChannelPluginEntry } from './channel-entry.js';
export { registerExtensionCliProgram } from './channel-helpers.js';
export { ExtensionHookRunner, createHookContext, isHookEvent } from '../hooks.js';
export { checkExtensionPathSafety, checkExtensionDirSafety, isExtensionAllowed, provenanceTracker, logSecurityIssue, DEFAULT_SECURITY_CONFIG, } from '../security.js';
export { getExtensionCache, getExtensionDiagnostics, ExtensionLoaderCacheImpl, ExtensionDiagnostics, } from '../diagnostics.js';
export type { Config } from '../../config/config-surface.js';
export { lazyModule, lazyFunction } from './lazy.js';
export { createMockExtensionApi, createTestGateway } from './testing.js';
export type { MockExtensionApi, MockExtensionApiOptions, TestGateway, } from './testing.js';
