import { type RunAddPatternCommandOptions } from './cli-add-shared.js'; import type { PatternCatalogScope } from './pattern-catalog.js'; /** * Add one PHP block pattern shell to an official workspace project. * * @param options Command options for the pattern scaffold workflow. * @param options.catalogTitle Optional human-readable title. Defaults to the * title-cased form of the normalized pattern slug. * @param options.contentFile Optional safe relative project path directly * under `src/patterns/` or one nested directory under `src/patterns/` for the * generated PHP file. Defaults to `src/patterns/full/.php` or * `src/patterns/sections/.php`. * @param options.cwd Working directory used to resolve the nearest official workspace. * Defaults to `process.cwd()`. * @param options.patternName Human-entered pattern name that will be normalized * and validated before files are written. * @param options.patternScope Catalog scope (`full` or `section`). Defaults to `full`. * @param options.sectionRole Section role slug. Required only when * `patternScope` is `section`. * @param options.tags Optional pattern tags as a comma-separated string or * array. Tags are normalized, deduplicated, and sorted. * @param options.thumbnailUrl Optional thumbnail URL or relative asset path * recorded in the inventory entry. * @returns A promise that resolves with the normalized `patternSlug`, owning * `projectDir`, resolved `contentFile`, `patternScope`, `tags`, `title`, and * optional `sectionRole` and `thumbnailUrl` after the pattern file and * inventory entry have been written successfully. * @throws {Error} When the command is run outside an official workspace, when * the pattern slug, scope, section-role coupling, tag values, or content file * path are invalid, or when a conflicting target file or inventory entry * already exists. */ export declare function runAddPatternCommand({ catalogTitle, contentFile, cwd, patternName, patternScope, sectionRole, tags, thumbnailUrl }: RunAddPatternCommandOptions): Promise<{ contentFile: string; patternSlug: string; patternScope: PatternCatalogScope; projectDir: string; sectionRole?: string; tags: string[]; title: string; thumbnailUrl?: string; }>;