import { r as EmbeddingProviderAdapter } from "./embedding-providers-D3X1TCIa.js";
import { r as PluginDiagnostic } from "./manifest-types-DYm6ZA7y.js";
import { E as DaoCorePluginHookOptions, O as DaoCorePluginToolFactory, U as WebSearchProviderPlugin } from "./types-core-Cv9NMS_3.js";
import { r as AnyAgentTool } from "./common-BDN0bXby.js";
import { F as DaoCorePluginReloadRegistration, G as ImageGenerationProviderPlugin, Gn as SpeechProviderPlugin, Jn as VideoGenerationProviderPlugin, K as MediaUnderstandingProviderPlugin, L as DaoCorePluginSecurityAuditCollector, O as DaoCorePluginNodeHostCommand, Un as RealtimeTranscriptionProviderPlugin, Wn as RealtimeVoiceProviderPlugin, d as DaoCorePluginCliCommandDescriptor, gr as CliBackendPlugin, it as MusicGenerationProviderPlugin, l as DaoCorePluginApi, m as DaoCorePluginCommandDefinition, p as DaoCorePluginCliRegistrar, qn as UnifiedModelCatalogProviderPlugin, si as AgentHarness, sn as ProviderPlugin, tt as MigrationProviderPlugin, u as DaoCorePluginChannelRegistration, v as DaoCorePluginGatewayRuntimeScopeSurface, vt as PluginRegistrationMode, y as DaoCorePluginHostedMediaResolver, z as DaoCorePluginService } from "./types-Zj4Bq9h-2.js";
import { et as PluginHookName, q as PluginHookHandlerMap } from "./hook-types-ax20W7Kw.js";
import { Ao as PluginRuntimeLifecycleRegistration, Do as PluginControlUiDescriptor, Eo as PluginAgentEventSubscriptionRegistration, Go as OperatorScope, Lo as PluginSessionExtensionRegistration, Mo as PluginSessionActionRegistration, Uo as PluginToolMetadataRegistration, Wo as PluginTrustedToolPolicyRegistration, zo as PluginSessionSchedulerJobRegistration } from "./index-ChRAMnH9.js";
import { n as ChannelPlugin } from "./types.public-B0VjJLe9.js";
import { n as GatewayRequestHandler } from "./types-CD1xwSld.js";
import { a as PluginRegistryParams, i as PluginRegistry, n as PluginHttpRouteRegistration$1, o as PluginTextTransformsRegistration, r as PluginRecord } from "./registry-types-DlO771W4.js";
import { E as registerInternalHook } from "./internal-hooks-DCdYIJk0.js";

//#region src/plugins/registry-empty.d.ts
declare function createEmptyPluginRegistry(): PluginRegistry;
//#endregion
//#region src/plugins/registry.d.ts
type PluginHttpRouteRegistration = PluginHttpRouteRegistration$1 & {
  gatewayRuntimeScopeSurface?: DaoCorePluginGatewayRuntimeScopeSurface;
};
type PluginTypedHookPolicy = {
  allowPromptInjection?: boolean;
  allowConversationAccess?: boolean;
  timeoutMs?: number;
  timeouts?: Record<string, number>;
};
declare function createPluginRegistry(registryParams: PluginRegistryParams): {
  registry: PluginRegistry;
  createApi: (record: PluginRecord, params: {
    config: DaoCorePluginApi["config"];
    pluginConfig?: Record<string, unknown>;
    hookPolicy?: PluginTypedHookPolicy;
    registrationMode?: PluginRegistrationMode;
  }) => DaoCorePluginApi;
  rollbackPluginGlobalSideEffects: (pluginId: string) => void;
  pushDiagnostic: (diag: PluginDiagnostic) => void;
  registerTool: (record: PluginRecord, tool: AnyAgentTool | DaoCorePluginToolFactory, opts?: {
    name?: string;
    names?: string[];
    optional?: boolean;
  }) => void;
  registerChannel: (record: PluginRecord, registration: DaoCorePluginChannelRegistration | ChannelPlugin, mode?: PluginRegistrationMode) => void;
  registerHostedMediaResolver: (record: PluginRecord, resolver: DaoCorePluginHostedMediaResolver) => void;
  registerProvider: (record: PluginRecord, provider: ProviderPlugin) => void;
  registerModelCatalogProvider: (record: PluginRecord, provider: UnifiedModelCatalogProviderPlugin) => void;
  registerAgentHarness: (record: PluginRecord, harness: AgentHarness) => void;
  registerCliBackend: (record: PluginRecord, backend: CliBackendPlugin) => void;
  registerTextTransforms: (record: PluginRecord, transforms: PluginTextTransformsRegistration["transforms"]) => void;
  registerEmbeddingProvider: (record: PluginRecord, adapter: EmbeddingProviderAdapter) => void;
  registerSpeechProvider: (record: PluginRecord, provider: SpeechProviderPlugin) => void;
  registerRealtimeTranscriptionProvider: (record: PluginRecord, provider: RealtimeTranscriptionProviderPlugin) => void;
  registerRealtimeVoiceProvider: (record: PluginRecord, provider: RealtimeVoiceProviderPlugin) => void;
  registerMediaUnderstandingProvider: (record: PluginRecord, provider: MediaUnderstandingProviderPlugin) => void;
  registerImageGenerationProvider: (record: PluginRecord, provider: ImageGenerationProviderPlugin) => void;
  registerVideoGenerationProvider: (record: PluginRecord, provider: VideoGenerationProviderPlugin) => void;
  registerMusicGenerationProvider: (record: PluginRecord, provider: MusicGenerationProviderPlugin) => void;
  registerWebSearchProvider: (record: PluginRecord, provider: WebSearchProviderPlugin) => void;
  registerMigrationProvider: (record: PluginRecord, provider: MigrationProviderPlugin) => void;
  registerGatewayMethod: (record: PluginRecord, method: string, handler: GatewayRequestHandler, opts?: {
    scope?: OperatorScope;
  }) => void;
  registerCli: (record: PluginRecord, registrar: DaoCorePluginCliRegistrar, opts?: {
    parentPath?: string[];
    commands?: string[];
    descriptors?: DaoCorePluginCliCommandDescriptor[];
  }) => void;
  registerReload: (record: PluginRecord, registration: DaoCorePluginReloadRegistration) => void;
  registerNodeHostCommand: (record: PluginRecord, nodeCommand: DaoCorePluginNodeHostCommand) => void;
  registerSecurityAuditCollector: (record: PluginRecord, collector: DaoCorePluginSecurityAuditCollector) => void;
  registerService: (record: PluginRecord, service: DaoCorePluginService) => void;
  registerCommand: (record: PluginRecord, command: DaoCorePluginCommandDefinition) => void;
  registerSessionExtension: (record: PluginRecord, extension: PluginSessionExtensionRegistration) => void;
  registerTrustedToolPolicy: (record: PluginRecord, policy: PluginTrustedToolPolicyRegistration) => void;
  registerToolMetadata: (record: PluginRecord, metadata: PluginToolMetadataRegistration) => void;
  registerControlUiDescriptor: (record: PluginRecord, descriptor: PluginControlUiDescriptor) => void;
  registerRuntimeLifecycle: (record: PluginRecord, lifecycle: PluginRuntimeLifecycleRegistration) => void;
  registerAgentEventSubscription: (record: PluginRecord, subscription: PluginAgentEventSubscriptionRegistration) => void;
  registerSessionSchedulerJob: (record: PluginRecord, job: PluginSessionSchedulerJobRegistration) => {
    id: string;
    pluginId: string;
    sessionKey: string;
    kind: string;
  } | undefined;
  registerSessionAction: (record: PluginRecord, action: PluginSessionActionRegistration) => void;
  registerHook: (record: PluginRecord, events: string | string[], handler: Parameters<typeof registerInternalHook>[1], opts: DaoCorePluginHookOptions | undefined, config: DaoCorePluginApi["config"], pluginConfig: unknown) => void;
  registerTypedHook: <K extends PluginHookName>(record: PluginRecord, hookName: K, handler: PluginHookHandlerMap[K], opts?: {
    priority?: number;
    timeoutMs?: number;
  }, policy?: PluginTypedHookPolicy) => void;
};
//#endregion
export { createPluginRegistry as n, createEmptyPluginRegistry as r, PluginHttpRouteRegistration as t };