import type { OpenClawConfig } from "../config/config.js"; import { type PluginCandidate } from "./discovery.js"; import { type PluginManifest, type PluginManifestChannelConfig, type PluginManifestContracts } from "./manifest.js"; import type { PluginBundleFormat, PluginConfigUiHint, PluginDiagnostic, PluginFormat, PluginKind, PluginOrigin } from "./types.js"; export type PluginManifestRecord = { id: string; name?: string; description?: string; version?: string; enabledByDefault?: boolean; autoEnableWhenConfiguredProviders?: string[]; format?: PluginFormat; bundleFormat?: PluginBundleFormat; bundleCapabilities?: string[]; kind?: PluginKind | PluginKind[]; channels: string[]; providers: string[]; cliBackends: string[]; providerAuthEnvVars?: Record; providerAuthChoices?: PluginManifest["providerAuthChoices"]; skills: string[]; settingsFiles?: string[]; hooks: string[]; origin: PluginOrigin; workspaceDir?: string; rootDir: string; source: string; setupSource?: string; startupDeferConfiguredChannelFullLoadUntilAfterListen?: boolean; manifestPath: string; schemaCacheKey?: string; configSchema?: Record; configUiHints?: Record; contracts?: PluginManifestContracts; channelConfigs?: Record; channelCatalogMeta?: { id: string; label?: string; blurb?: string; preferOver?: readonly string[]; }; }; export type PluginManifestRegistry = { plugins: PluginManifestRecord[]; diagnostics: PluginDiagnostic[]; }; export declare function clearPluginManifestRegistryCache(): void; export declare function loadPluginManifestRegistry(params?: { config?: OpenClawConfig; workspaceDir?: string; cache?: boolean; env?: NodeJS.ProcessEnv; candidates?: PluginCandidate[]; diagnostics?: PluginDiagnostic[]; }): PluginManifestRegistry;