import { Ot as ProviderAuthMethod, cn as ProviderPlugin, g as DexPluginDefinition, h as DexPluginConfigSchema, l as DexPluginApi, ln as ProviderPluginCatalog, pn as ProviderPluginWizardSetup } from "./types-C9WXbJM3.js";
import { t as createProviderApiKeyAuthMethod } from "./provider-api-key-auth-ooy1H6lJ.js";
import { l as buildSingleProviderApiKeyCatalog } from "./provider-catalog-shared-CMeZgj-T.js";

//#region src/plugin-sdk/provider-entry.d.ts
type ApiKeyAuthMethodOptions = Parameters<typeof createProviderApiKeyAuthMethod>[0];
type SingleProviderPluginApiKeyAuthOptions = Omit<ApiKeyAuthMethodOptions, "providerId" | "expectedProviders" | "wizard"> & {
  expectedProviders?: string[];
  wizard?: false | ProviderPluginWizardSetup;
};
type SingleProviderPluginCatalogOptions = {
  buildProvider: Parameters<typeof buildSingleProviderApiKeyCatalog>[0]["buildProvider"];
  buildStaticProvider?: Parameters<typeof buildSingleProviderApiKeyCatalog>[0]["buildProvider"];
  allowExplicitBaseUrl?: boolean;
  run?: never;
  order?: never;
  staticRun?: never;
} | {
  run: ProviderPluginCatalog["run"];
  staticRun?: ProviderPluginCatalog["run"];
  order?: ProviderPluginCatalog["order"];
  buildProvider?: never;
  buildStaticProvider?: never;
  allowExplicitBaseUrl?: never;
};
type SingleProviderPluginOptions = {
  id: string;
  name: string;
  description: string;
  /**
   * @deprecated Declare exclusive plugin kind in `openclaw.plugin.json` via
   * manifest `kind`. Runtime-entry `kind` remains only as a compatibility
   * fallback for older plugins.
   */
  kind?: DexPluginDefinition["kind"];
  configSchema?: DexPluginConfigSchema | (() => DexPluginConfigSchema);
  provider?: {
    id?: string;
    label: string;
    docsPath: string;
    aliases?: string[];
    envVars?: string[];
    auth?: SingleProviderPluginApiKeyAuthOptions[];
    extraAuth?: ProviderAuthMethod[];
    catalog: SingleProviderPluginCatalogOptions;
  } & Omit<ProviderPlugin, "id" | "label" | "docsPath" | "aliases" | "envVars" | "auth" | "catalog" | "staticCatalog">;
  register?: (api: DexPluginApi) => void;
};
declare function defineSingleProviderPluginEntry(options: SingleProviderPluginOptions): {
  id: string;
  name: string;
  description: string;
  configSchema: DexPluginConfigSchema;
  register: NonNullable<DexPluginDefinition["register"]>;
} & Pick<DexPluginDefinition, "kind" | "reload" | "nodeHostCommands" | "securityAuditCollectors">;
//#endregion
export { SingleProviderPluginApiKeyAuthOptions, SingleProviderPluginCatalogOptions, SingleProviderPluginOptions, defineSingleProviderPluginEntry };