/** Parse the `version` field from a plugin.json manifest string, or null if absent/malformed. * compareCalVer is a generic numeric dotted-version comparator, so plain semver ("0.1.0") works. */ export declare function parsePluginVersion(manifestJson: string): string | null; /** * Keep version-managed plugins in PLUGINS_DIR in sync with the shipped defaults. * * A default plugin that declares a `version` in `.claude-plugin/plugin.json` is deployed when * missing, and refreshed (all its shipped files rewritten) whenever the shipped version is newer * than the deployed one. A missing or unversioned deployed copy counts as oldest, so legacy installs * are brought under management on first run. Unversioned default plugins (no manifest version) are * left to init's copy-if-missing and never touched here. User-added files inside a managed plugin are * preserved (only shipped files are written, nothing is deleted). Idempotent and crash-safe via * atomicWrite. * * `opts` exists for tests; production calls it with no args (real DEFAULTS_DIR/plugins + PLUGINS_DIR). * Returns the list of plugin names that were deployed or refreshed. */ export declare function syncManagedPlugins(opts?: { srcDir?: string; dstDir?: string; }): Promise;