import { type BrandApiClientOptions } from "../api/client.js"; import type { BrandKitSummary } from "./list.js"; export interface CreateBrandKitOptions { client: BrandApiClientOptions; /** Display name; required. */ name: string; /** Optional human description. */ description?: string; /** Industry label (free-form, e.g. "retail", "developer-tools"). */ industry?: string; /** Internal brand name (often same as `name`). */ brandName?: string; /** Company name if different from brand. */ companyName?: string; /** Logo URL — must be a PNG per the OpenAPI. */ logo?: string; signal?: AbortSignal; } /** * Create a new brand kit. New kits land in `status: "draft"` and must * be PATCHed to `published` via `publishBrandKit` before either of * the ingestion pipelines will populate sections — see * [[project-scai-brand-kit-seed-recipe]] for the full sequence. * * Returns the created kit's summary record with its UUID. */ export declare const createBrandKit: (options: CreateBrandKitOptions) => Promise; export interface PublishBrandKitOptions { client: BrandApiClientOptions; brandKitId: string; signal?: AbortSignal; } /** * Flip a brand kit's `status` to `"published"`. Required before the * brand ingestion / enrichment pipelines will populate the kit's * sections — leaving a kit in `draft` causes the pipelines to chunk * the source documents but never produce section content (the * symptom: doc `summarized` stays `null` and the kit's section list * stays empty indefinitely). * * Idempotent: PATCHing an already-published kit returns 200 with the * same status. */ export declare const publishBrandKit: (options: PublishBrandKitOptions) => Promise; export interface UpdateBrandKitLogoOptions { client: BrandApiClientOptions; brandKitId: string; /** Logo image URL (PNG per the OpenAPI). */ logo: string; signal?: AbortSignal; } /** * Set a brand kit's logo via `PATCH .../brandkits/{id}` with a `{ logo }` * body — the same kit-level PATCH `publishBrandKit` uses for `status`. * The logo is a plain URL the brand-kit UI renders directly, so any * publicly reachable image URL works. Idempotent: re-PATCHing the same * value returns 200 unchanged. */ export declare const updateBrandKitLogo: (options: UpdateBrandKitLogoOptions) => Promise; export interface DeleteBrandKitOptions { client: BrandApiClientOptions; brandKitId: string; signal?: AbortSignal; } /** * Delete a brand kit. The endpoint is undocumented in Sitecore's * OpenAPI but the portal UI uses it and it works * (`DELETE /api/brands/v1/.../brandkits/{id}` returns `204`). * * Caveat: this DOES NOT delete the kit's attached documents. Use * `deleteDocument` for cleanup of dangling docs. */ export declare const deleteBrandKit: (options: DeleteBrandKitOptions) => Promise;