/** * Shared banner-block builder. * * Emits the opening banner as a sequence of semantically-classed * blocks. Used by `handleGameStarted` for the game-start banner. * (ABOUT renders via the lang-en-us `if.action.about.success` template * since 2026-07-02; its dedicated handler was removed.) * * Pieces (in order): * * 1. `game-title` — title * 2. `story-version` — `Story v{version}` + optional build date * 3. `platform-version` — `Sharpee v{engineVersion}` (if provided) * 4. `sub-title` — description (if provided) * 5. `author-list[]` — `credits` if provided, else single * `By {author}` line if `author` is set * 6. `banner-spacer` — empty `

` for visual separation * 7. story-tail — appended via `createBlocks` from * `game.banner.story-tail` if the language * provider has that template * * Owner context: `@sharpee/engine` — internal prose pipeline. */ import type { ITextBlock } from '@sharpee/text-blocks'; import type { HandlerContext } from './types'; /** * Subset of story metadata used by the banner builder. * `handleGameStarted` projects `event.data.story` into this shape. */ export interface BannerStoryInfo { title?: string; version?: string; buildDate?: string; description?: string; author?: string; credits?: string[]; } /** * Build the structured banner blocks for a `key` (typically * `'game.banner'` from `game.started`). */ export declare function buildBannerBlocks(key: string, story: BannerStoryInfo | undefined, engineVersion: string | undefined, context: HandlerContext): ITextBlock[]; //# sourceMappingURL=banner.d.ts.map