import React from 'react'; /** The fields every people-hub employee entry shares. Entity-specific bindings * (`WhatIShippedCard`, `HowIWorkCard`) map their own date column to `dateLabel` * and pass the rest through unchanged. */ export interface EmployeeEntryCardData { title?: string | null; summary?: string | null; status?: string | null; featured_image?: string | null; main_video_thumbnail?: string | null; author?: { full_name?: string | null; avatar_url?: string | null; } | null; } export interface EmployeeEntryCardProps { entry: EmployeeEntryCardData; /** Already-formatted date shown in the meta row. Bindings own the format so * the UTC-pin convention stays in `utils/format`, not in the card. */ dateLabel?: string | null; /** Extra badges rendered after the status badge (e.g. discipline / level). */ extraBadges?: React.ReactNode; /** Fallback title when the entry has none — names the entity in the empty case. */ untitledLabel?: string; /** OG fallback cover. Caller computes it (hub: `useOgPlaceholderUrl`; related * rail: `extras.buildOgPlaceholderUrl`). */ placeholderUrl?: string | null; /** Owner action row (dashboard). Omit for a read-only card. */ actions?: React.ReactNode; /** When provided, the WHOLE card becomes a link (related-rail click-through). * Don't combine with `actions` (nested interactive). */ anchorProps?: React.AnchorHTMLAttributes; className?: string; } /** Shared badge treatment so an entity's own badges (discipline, level) sit * flush with the status badge instead of re-deriving the classes per card. */ export declare function EmployeeEntryBadge({ children }: { children: React.ReactNode; }): React.JSX.Element; /** * THE people-hub employee-entry card. Wraps `AdminContentCard` with the canonical * mapping (cover = featured_image || main_video_thumbnail, OG placeholder * fallback, title, 140-char summary, status badge, author avatar+name + a date * label). Every entity that renders "an employee's entry" binds to this one * engine — What I Shipped and How I Work differ only in which date column they * format and which extra badges they add, so the card itself cannot drift * between the dashboard and the related-content rail. */ export declare function EmployeeEntryCard({ entry, dateLabel, extraBadges, untitledLabel, placeholderUrl, actions, anchorProps, className, }: EmployeeEntryCardProps): React.JSX.Element; /** Loading skeleton matching EmployeeEntryCard's AdminContentCard shape (3:2 cover * + title / summary / meta lines). Used by the related-content rail while a * group hydrates so there's no shape jump when the real card lands. */ export declare function EmployeeEntryCardSkeleton({ className }: { className?: string; }): React.JSX.Element; //# sourceMappingURL=employee-entry-card.d.ts.map