/** * Registry Publisher — Turn a pulled Memoire design system into a * distributable registry package ready for `npm publish`. * * Output directory shape: * / * package.json (npm metadata) * registry.json (Memoire registry protocol v1) * README.md * tokens/ * tokens.json (W3C DTCG) * tokens.css (CSS variables + Tailwind v4 @theme) * components/ * Button.json (ComponentSpec) * Card.json * ... */ import type { DesignSystem } from "../engine/registry.js"; import type { ComponentSpec } from "../specs/types.js"; export interface PublishInput { name: string; version: string; description?: string; homepage?: string; license?: string; outDir: string; designSystem: DesignSystem; specs: ComponentSpec[]; memoireVersion: string; sourceFigmaUrl?: string; sourcePenpotFileId?: string; sourceDesignDocUrl?: string; /** Frameworks to bundle real code for. Default: ["react"]. */ frameworks?: Array<"react" | "vue" | "svelte">; /** Skip bundling code (specs only). Default: false. */ specsOnly?: boolean; /** Extra npm/marketplace tags for generated package metadata. */ tags?: string[]; } export interface PublishResult { outDir: string; registryPath: string; filesWritten: string[]; } /** * Build a publishable registry package on disk. * * Does NOT run `npm publish` — that's the user's call after reviewing the output. * Returns the absolute paths of all files written. */ export declare function publishRegistry(input: PublishInput): Promise;