/** * Manual/premium update row helpers (roadmap 3.1 — premium as a first-class * ASSISTED state). * * Pure functions extracted from UpdatesView so they can be unit-tested * without loading the view's module tree (see the v2.11.17 lesson: view * imports are heavy and hang the test runner). */ import type { ManualUpdateInfo } from '../../workflows/update-check.js'; /** * Short reason badge for a manual update row. * 'premium' → paid resource behind a purchase wall; * 'external-page' → source redirects to an HTML page, not an artifact; * absent reason → generic manual (registry-flagged without runtime detection). */ export declare function manualReasonBadge(reason?: ManualUpdateInfo['reason']): string; /** * Trailing metadata for a manual update row (1 line, truncated by the view): * the supersededBy advisory wins when present (an abandoned plugin's page * link is a trap — the replacement matters more), otherwise the deep-link. */ export declare function manualUpdateMeta(update: ManualUpdateInfo): string; //# sourceMappingURL=manual-updates.d.ts.map