/** * `` — the shared, SELF-CONTAINED releases LIST surface. * * The host configures only two things: the **api route** (`endpoint`, default * `/api/releases`) and the **internal page route** for a release's detail page * (via `runtime.composeContentUrl` / `basePath`). Everything else — reading the * search / status / page URL params the section chrome writes, fetching the * page, pagination, empty / error / loading states, card composition + nav — * happens INSIDE the lib. Mirrors the `DeliveryLists` internal-fetch pattern * (plain `fetch` + `useEffect`/`useState`, no react-query dependency). * * SSR: pass `initialData` to hydrate the first page without a client round-trip * (the hub can server-fetch); embedders omit it and the view fetches on mount. * * Card props: `buildCardProps` defaults to the lib's RICH `buildProductReleaseCardProps` * (full lg metadata — Type / Status / author / changelog counts); pass your own to customize. */ import * as React from 'react'; import type { ProductRelease, ProductReleaseListResponse } from '../../../types/product-release'; import { type ProductReleaseCardProps } from './product-release-card'; /** The `` props the caller derives per release — the card's * own data fields minus the ones this view supplies (title/summary/version/ * size/nav). `formattedDate` stays required so the spread satisfies the card. */ export type ProductReleaseCardExtras = Omit; export interface ProductReleasesViewProps { /** GET endpoint for the releases list (the api route). The view appends * `?limit&offset&&`. Default `/api/releases`. */ endpoint?: string; /** Optional SSR hydrate for the first page — skips the initial client fetch. */ initialData?: ProductReleaseListResponse; /** Page size → fixed slot count + offset math. Default 5. */ itemsPerPage?: number; /** Fallback detail-href prefix when `runtime.composeContentUrl` is not wired * (single-platform embedders). Default `/releases`. */ basePath?: string; /** Derive the per-card prop bundle. Defaults to the lib's RICH lg builder * (`buildProductReleaseCardProps` — full Type/Status/author/changelog metadata) * so embedders get the complete card with zero config; pass your own to customize. */ buildCardProps?: (release: ProductRelease) => ProductReleaseCardExtras; /** URL param key for the search input. MUST match the chrome that writes it. * Default `'search'` (also the outbound query-param name). */ searchParamKey?: string; /** URL param key for the status filter. Default `'release_status'`. */ statusParamKey?: string; /** URL param key for the page number. Default `'page'`. */ pageParamKey?: string; className?: string; } export declare function ProductReleasesView({ endpoint, initialData, itemsPerPage, basePath, buildCardProps, searchParamKey, statusParamKey, pageParamKey, className, }?: ProductReleasesViewProps): React.JSX.Element; //# sourceMappingURL=product-releases-view.d.ts.map