import type { EntityAuthor } from '../../../types/entity-author'; /** * Author + publication metadata, rendered as the SAME 2-or-N-cell grid pattern * the release detail page uses. * * Each cell sits inside a single bordered/rounded container, separated by * `border-r` dividers — byte-identical visual contract to the release page. * * Cell taxonomy: * - `` — top: large value (`text-h4` uppercase), * bottom: small label (`DM_Sans` 14px secondary). Used for Type / Status * / Date. * - `` — `` + name + label. Used * for the Author column. * * `` is the convenience composer for the common * "Published + Author" pair. Pass `publishedAt` to get both cells; omit it * to get just the Author card (single-cell mode used by surfaces with no * separate publication-date concept). * * Renders null when `author` is null/empty unless `renderEmptyAuthor` is set. */ /** * Documented empty-author placeholder for CHAT CARD surfaces ("—" name, * "Unknown" role). The release detail page deliberately keeps its legacy * empty rendering instead ("Unknown Author"/"Author" via a null-field stub * — see release-detail-page.tsx) — two documented empty styles, one cell. */ export declare const EMPTY_AUTHOR_PLACEHOLDER: { readonly full_name: "—"; readonly avatar_url: null; readonly job_title: "Unknown"; }; export interface EntityAuthorCardProps { author: EntityAuthor | null | undefined; /** Role label rendered under the name. Defaults to "Author". Override * to e.g. "Presenter" / "Contributor" if semantics differ. */ roleLabel?: string; /** Link target for the author name (e.g. the public author page). The * HOST computes it (route availability is host knowledge) — absent ⇒ * plain text, exactly the prior render. */ authorHref?: string; /** Optional publication date. When provided, the component renders as a * 2-cell grid (Published | Author). When omitted, only the Author cell * renders inside the same bordered container. */ publishedAt?: string | Date | null; /** Label for the Published cell. Defaults to "Published". */ publishedLabel?: string; /** * Extra value cells inserted into the metadata grid BEFORE the * Published cell. Each item renders as an `` * with a large `text-h4` value and a small `DM_Sans` 14px label. * * Use for entity-specific labels (e.g. onboarding-guide section/step, * webinar host, customer-interview customer). The grid auto-sizes via * `grid-cols-N`. */ extraCells?: Array<{ value: string; label: string; uppercase?: boolean; }>; /** When true, render the author cell even when `author?.full_name` is * missing — using the `EMPTY_AUTHOR_PLACEHOLDER` shape above. Used by * catalog grids that must keep a fixed shape so skeleton alignment * holds. Defaults to false. */ renderEmptyAuthor?: boolean; className?: string; } /** * Single value cell — top: large `text-h4` value (uppercase), bottom: small * `DM_Sans` 14px secondary label. */ export declare function EntityMetadataValueCell({ value, label, className, uppercase, }: { value: string; label: string; className?: string; uppercase?: boolean; }): import("react").JSX.Element; /** * Author cell — `` + name + role label. The containing border / * divider is the caller's responsibility — this is just the cell content. */ export declare function EntityMetadataAuthorCell({ author, roleLabel, authorHref, className, }: { author: NonNullable; roleLabel?: string; authorHref?: string; className?: string; }): import("react").JSX.Element; export declare function EntityAuthorCard({ author, roleLabel, authorHref, publishedAt, publishedLabel, extraCells, renderEmptyAuthor, className, }: EntityAuthorCardProps): import("react").JSX.Element | null; //# sourceMappingURL=entity-author-card.d.ts.map