import type { ResolvedUpdater, UpdaterConfig } from './config.js'; export type { ResolvedUpdater } from './config.js'; /** * Resolves a `UpdaterConfig` down to what the updater HTTP handler and * `murasaki-meta.json` actually need — see contract §3. Signature * verification is not optional: there is no config path that skips * resolving (and thus requiring) a public key. * * Resolution order: * 1. `updater` absent or `false` → `null` (updater disabled). * 2. `repo` and `endpoint` both set → throws. * 3. Neither set → read `repository` from `/package.json`, * normalizing the usual shapes ("owner/repo", "github:owner/repo", * `{ url: "git+https://github.com/owner/repo.git" }`). Throws if nothing * resolves. * 4. GitHub mode's `manifestUrl` is a `releases/latest/download/…` (default * channel) or `releases/download//…` (named channel) URL — a * fixed GitHub Releases asset URL that always 302s to the newest matching * release, so no GitHub API call, rate limit, or token is needed. * 5. `publicKey`: explicit config → `$MURASAKI_UPDATE_PUBLIC_KEY` → * `/.murasaki/update-key.pub`. Throws (with a `murasaki * release --keygen` pointer) if none is found. */ export declare function resolveUpdater(updater: UpdaterConfig | undefined, ctx: { projectRoot: string; }): ResolvedUpdater | null; //# sourceMappingURL=resolve-updater.d.ts.map