export type Tier = "present" | "missing" | "template-default" | "likely-default" | "dead-image"; /** The five tags the checklist reads. `twitter:card` is read but reported only through `social`. */ export type FieldKey = "title" | "description" | "image"; export interface Finding { field: FieldKey; tier: Tier; /** The value found, if any. Both default tiers PRINT it — evidence is what makes them safe. */ value?: string; /** The tag as it appears in the source, e.g. ``. */ tag: string; } export interface FileFindings { /** The dist-relative html path, e.g. `index.html`. */ file: string; findings: Finding[]; } export interface ParsedMeta { title?: string; ogTitle?: string; description?: string; ogDescription?: string; ogImage?: string; ogUrl?: string; twitterCard?: string; } export declare function parseMeta(html: string): ParsedMeta; export interface ClassifyContext { /** Every normalized path in the manifest — what makes the dead-og:image check structural. */ manifestPaths: ReadonlySet; /** `.`, for the og:url host heuristic. Absent skips that check. */ expectedHost?: string; } /** * CLASSIFY, per 2A: * absent -> MISSING * value in the bundled corpus -> TEMPLATE-DEFAULT (high confidence) * value matches a generic shape -> LIKELY-DEFAULT (low confidence) * else -> PRESENT * * Plus the one structural certainty: an og:image naming a path that is not in the * manifest is a dead social image, and the manifest either contains it or it does * not. */ export declare function classify(meta: ParsedMeta, ctx: ClassifyContext): Finding[]; /** * The manifest path an og:image refers to, or undefined when it is an absolute * URL on some other host — which the CLI cannot check and must not guess about. */ export declare function localManifestPath(value: string): string | undefined; /** Every `.html` in the manifest, classified. Multiple files group under their filename. */ export declare function classifyDist(distDir: string, manifestPaths: ReadonlySet, readFile: (abs: string) => Promise, join: (dir: string, rel: string) => string, ctx?: Omit): Promise;