import type { Manifest } from './types.js';
/** Canonical filename for the manifest in any agents repo or project root. */
export declare const MANIFEST_FILENAME = "agents.yaml";
/** Parse a YAML string into a typed Manifest object. */
export declare function parseManifest(content: string): Manifest;
/**
 * Serialize a Manifest to YAML WITHOUT destroying hand-written comments.
 *
 * Plain `yaml.stringify(manifest)` drops every comment, so `agents mcp add`
 * (and every other writeManifest caller) used to clobber annotations in
 * agents.yaml. Matching `serializeCentral` in state.ts: when existing file
 * text is provided, parse it into a `yaml.Document` (comments + key order
 * preserved) and edit only keys that actually changed. Untouched keys and
 * their comments stay byte-stable. Falls back to plain stringify when there
 * is no existing document yet.
 */
export declare function serializeManifest(manifest: Manifest, existingContent?: string | null): string;
/** Read and parse agents.yaml from a directory. Returns null if the file does not exist. */
export declare function readManifest(repoPath: string): Manifest | null;
/** Write a Manifest object to agents.yaml in the given directory. */
export declare function writeManifest(repoPath: string, manifest: Manifest): void;
/** Create a Manifest with sensible defaults for a fresh agents repo. */
export declare function createDefaultManifest(): Manifest;
