import { g as DaoCorePluginDefinition, h as DaoCorePluginConfigSchema, l as DaoCorePluginApi } from "./types-Zj4Bq9h-2.js";
//#region src/plugin-sdk/plugin-entry.d.ts
/** Options for a plugin entry that registers providers, tools, commands, or services. */
type DefinePluginEntryOptions = {
  id: string;
  name: string;
  description: string;
  /**
   * @deprecated Declare exclusive plugin kind in `daocore.plugin.json` via
   * manifest `kind`. Runtime-entry `kind` remains only as a compatibility
   * fallback for older plugins.
   */
  kind?: DaoCorePluginDefinition["kind"];
  configSchema?: DaoCorePluginConfigSchema | (() => DaoCorePluginConfigSchema);
  reload?: DaoCorePluginDefinition["reload"];
  nodeHostCommands?: DaoCorePluginDefinition["nodeHostCommands"];
  securityAuditCollectors?: DaoCorePluginDefinition["securityAuditCollectors"];
  register: (api: DaoCorePluginApi) => void;
};
/** Normalized object shape that DaoCore loads from a plugin entry module. */
type DefinedPluginEntry = {
  id: string;
  name: string;
  description: string;
  configSchema: DaoCorePluginConfigSchema;
  register: NonNullable<DaoCorePluginDefinition["register"]>;
} & Pick<DaoCorePluginDefinition, "kind" | "reload" | "nodeHostCommands" | "securityAuditCollectors">;
/**
 * Canonical entry helper for non-channel plugins.
 *
 * Use this for provider, tool, command, service, memory, and context-engine
 * plugins. Channel plugins should use `defineChannelPluginEntry(...)` from
 * `daocore/plugin-sdk/core` so they inherit the channel capability wiring.
 */
declare function definePluginEntry({
  id,
  name,
  description,
  kind,
  configSchema,
  reload,
  nodeHostCommands,
  securityAuditCollectors,
  register
}: DefinePluginEntryOptions): DefinedPluginEntry;
//#endregion
export { definePluginEntry as t };