/** * Comment-preserving editor for `skaile.manifest.yaml` files. * * The publication counterpart to {@link WorkspaceYamlEditor}: it owns the * `publisher` / `version` / `assets[]` accessors that used to sit on the * workspace editor before the 2026-06-03 manifest/workspace file split. Uses the * `yaml` library's Document AST so untouched sections stay byte-identical. * * Usage: * * import { ManifestYamlEditor } from '@skaile/workspaces/core' * * const editor = ManifestYamlEditor.load('/project/skaile.manifest.yaml') * editor.setPublisher('skaile-ai') * editor.setAsset({ kind: 'skill', name: 'audit', root: 'skills/audit' }) * editor.save() */ import { Document } from "yaml"; import type { AssetEntry } from "./publish-manifest.js"; /** * Comment-preserving editor for `skaile.manifest.yaml` files. * Create with `ManifestYamlEditor.load(filePath)` or `ManifestYamlEditor.create(filePath)`. * @docLink packages/core/publish-manifest#manifest-yaml-editor */ export declare class ManifestYamlEditor { readonly path: string; private doc; private constructor(); /** Load an existing skaile.manifest.yaml file. */ static load(filePath: string): ManifestYamlEditor; /** Create a new empty document (for use when no file exists yet). */ static create(filePath: string): ManifestYamlEditor; /** Write the document back to disk, preserving comments and formatting. */ save(): void; /** Return the serialized YAML string without writing to disk. */ toString(): string; /** Get the `publisher:` field. */ getPublisher(): string | undefined; /** Set the `publisher:` field. */ setPublisher(p: string): void; /** Get the `version:` field. */ getVersion(): string | undefined; /** Set the `version:` field. */ setVersion(v: string): void; /** Get the repo-level `license:` default. */ getLicense(): string | undefined; /** Set the repo-level `license:` default. */ setLicense(v: string): void; /** Get the repo-level `homepage:` default. */ getHomepage(): string | undefined; /** Set the repo-level `homepage:` default. */ setHomepage(v: string): void; /** Get all `assets:` entries. */ getAssets(): AssetEntry[]; /** Add or update an asset entry, matched by `kind` + `name`. */ setAsset(entry: AssetEntry): void; /** Remove an asset entry by kind + name. Returns true when removed. */ removeAsset(kind: string, name: string): boolean; /** Get the underlying yaml Document for advanced manipulation. */ get document(): Document; } //# sourceMappingURL=manifest-yaml-editor.d.ts.map