/** * LCP (Largest Contentful Paint) coordination for the section renderer. * * Core Web Vitals best practice: exactly ONE image per page should be eagerly * loaded with `fetchpriority="high"` — the Largest Contentful Paint candidate, * almost always the first image in the document. Every other image must lazy- * load so it never competes with the LCP resource for bandwidth. * * The renderer can't know which image is "first" without coordinating across * independent renderers (`PostHeader` + each section). An {@link LcpController} * is a tiny single-claim allocator: the first renderer to call `claim()` wins * the page's one priority slot; everyone else gets `false` and lazy-loads. * * Pass ONE controller to both `PostHeader` and `Sections` (via `options.lcp`) * so a post's featured image and its body sections share a single budget. When * omitted, each component creates its own — correct for the common case of * rendering only one of them. */ export interface LcpController { /** * Returns `true` exactly once — for the page's single LCP (priority) image — * and `false` for every subsequent call. Safe to call during render. */ claim(): boolean; /** True once the priority slot has been claimed. */ readonly claimed: boolean; } /** Create a fresh single-claim LCP controller (one per rendered page). */ export declare function createLcpController(): LcpController; //# sourceMappingURL=lcp.d.ts.map