import { HttpError } from '../lib/http.js'; import { type BumpLevel } from '../lib/semver-bump.js'; import { validatePipelineSpec } from '../lib/pipeline-spec.js'; export interface PublishPipelineDeps { readFileSync: (path: string, enc: 'utf-8') => string; /** * Directory publishing reads more than one file, so both halves of the * filesystem walk are seams like `readFileSync` — the tests drive a fake * directory map and never touch disk. */ statSync: (path: string) => { isDirectory: () => boolean; }; readDirEntries: (path: string) => string[]; /** * Binary read. The bundle carries whatever the author put in the directory, * and a text read would silently corrupt every non-UTF-8 file (a PNG fixture * arrives byte-mangled and fails later, in the buyer's sandbox, far from the * publish that caused it). */ readFileBytes: (path: string) => Uint8Array; authedJson: (method: string, path: string, body: unknown) => Promise; HttpError: typeof HttpError; validatePipelineSpec: typeof validatePipelineSpec; log: (...args: unknown[]) => void; error: (...args: unknown[]) => void; /** G2.5 — path to a README.md (or PIPELINE.md) to attach as `description_md`. */ readmePath?: string; /** * #12 — bump level to use when the server reports that this version already * exists carrying different content. Undefined means "never bump", which * turns that conflict into a loud failure instead of a silent skip. */ bumpVersion?: BumpLevel; } export declare function publishPipelineCommand(filePath: string, depsOverrides?: Partial): Promise;