/** * `skaile library publish / register / yank` — the first-party publish flow. * A git-backed library you own carries an in-repo `skaile.manifest.yaml`; this * commits + pushes the library repo (publish), or takes the current remote HEAD * as-is (register), then registers + syncs it as a store source and publishes * the manifest's assets under the manifest's own `publisher` (no namespace * remap — first-party authors intend their declared namespace). * * - `publish` = commit (if dirty) + push + register + sync + publish. * - `register` = same, but skip the commit/push (bytes already on GitHub). * - `yank` = unpublish the library's published assets (all, or one). * * The store REST surface is reached through the injectable {@link PublisherClient} * (default HTTP); git side-effects go through an injectable `spawn`. Both seams * keep the flow unit/integration-testable without a live store or a real remote. * * @docLink cli/commands/library */ import { spawnSync } from "node:child_process"; import { type PublisherClient } from "../store-publisher.ts"; /** Injectable spawn contract — the subset of `spawnSync` these helpers use. */ type SpawnLike = typeof spawnSync; /** * `skaile library publish ` — commit + push the library repo, register + * sync it as a store source, and publish its manifest's assets under the * manifest publisher. See the module header for the full flow. */ export declare function runLibraryPublish(name: string, opts: { asset?: string; createRepo?: boolean; ref?: string; dryRun?: boolean; }, client?: PublisherClient, spawn?: SpawnLike): Promise; /** * `skaile library register ` — same as publish but skips the commit/push * (the bytes are already on GitHub at the current remote HEAD). Still requires a * git-backed remote. */ export declare function runLibraryRegister(name: string, opts: { asset?: string; ref?: string; dryRun?: boolean; }, client?: PublisherClient, spawn?: SpawnLike): Promise; /** * `skaile library yank ` — unpublish the library's published assets from * the store (all, or the single asset matching `opts.asset`'s name). * Auth-gated like publish. */ export declare function runLibraryYank(name: string, opts: { asset?: string; }, client?: PublisherClient): Promise; export {}; //# sourceMappingURL=library-publish.d.ts.map