import { z } from 'zod'; import { type ClientId } from '@zhixuan92/multi-model-agent-core'; /** The `version` a packaged SKILL.md declares in its frontmatter — the value * recorded against every manifest entry, and the one the boot check compares * an installed copy against. `'unknown'` for anything unparseable, so a * malformed skill is recorded as present-but-unversioned rather than dropped. */ export declare function versionFromContent(content: string): string; declare const manifestEntrySchema: z.ZodObject<{ name: z.ZodString; skillVersion: z.ZodString; installedAt: z.ZodNumber; targets: z.ZodArray>; }, z.core.$strip>; export type ManifestEntry = z.infer; /** Thrown when the manifest declares a version newer than this mma supports. */ export declare class FutureManifestError extends Error { constructor(version: number); } /** Full path to the manifest file. */ export declare function manifestPath(homeDir?: string): string; /** * Return all manifest entries, newest-first. */ export declare function listEntries(homeDir?: string): ManifestEntry[]; /** * Append (or update) the entry for `skillName`. * * - New entry: creates with de-duplicated `newTargets`. * - Existing entry: merges `newTargets` into existing targets (no duplicates), * refreshes `version` and `installedAt`. * * In both paths the stored `targets` array is a fresh copy — caller mutations * after the call do not affect the in-memory object or persisted manifest. * * Returns the resulting entry. */ export declare function appendEntry(skillName: string, skillVersion: string, newTargets: ClientId[], homeDir?: string): ManifestEntry; /** * Remove `targets` from the entry for `skillName`. * If `targets` is omitted or empty, removes the entire entry. * Returns the removed targets (or all targets for a full removal), * or an empty array if the skill wasn't in the manifest. */ export declare function removeEntry(skillName: string, targets?: ClientId[], homeDir?: string): ClientId[]; interface MissingSkill { name: string; targets: ClientId[]; } /** Every packaged skill in `supportedSkills` that has NO manifest entry yet, * paired with the union of targets already recorded for OTHER skills — the * same clients a fresh skill should be installed to. Returns `[]` when the * manifest is empty (no client has opted in to anything yet). */ export declare function findMissingSkills(manifestEntries: ManifestEntry[], supportedSkills: readonly string[]): MissingSkill[]; export {}; //# sourceMappingURL=manifest.d.ts.map