export interface ProductionSeoAuditConfig { baseUrl: string; /** Site display title for homepage and generic-title checks */ siteTitle: string; trailingSlash?: boolean; sitemapPath?: string; markdownIndexPath?: string; articlePathPrefixes?: string[]; outputDir: string; outputCsvName?: string; outputMdName?: string; concurrency?: number; /** Minimum visible text length in
(or body fallback) */ thinContentThreshold?: number; /** Minimum markdown body length */ minMarkdownLength?: number; requestDelayMs?: number; /** Path prefixes where .md export is not expected (e.g. PDF download routes) */ skipMarkdownPathPrefixes?: string[]; } export interface ProductionSeoAuditRow { url: string; finalUrl: string; httpStatus: number; title: string; description: string; descLen: number; h1: string; mainTextLen: number; canonical: string; noindex: boolean; jsonldCount: number; jsonldErrors: string; schemaTypes: string; titleFlags: string; descFlags: string; schemaFlags: string; contentFlags: string; mdStatus: number; mdLen: number; mdCanonicalOk: boolean; allFlags: string; severity: 'ok' | 'warn' | 'error'; } export interface ProductionSeoAuditResult { rows: ProductionSeoAuditRow[]; /** Total unique page URLs crawled (sitemap.xml + sitemap-unindexed.xml). */ sitemapUrlCount: number; /** Unique page URLs from sitemap.xml only. */ sitemapIndexedUrlCount: number; /** Unique page URLs from sitemap-unindexed.xml only. */ sitemapUnindexedUrlCount: number; markdownIndexUrlCount: number; missingFromMarkdownIndex: string[]; discoveryIssues: Array<{ endpoint: string; severity: 'error' | 'warn'; message: string; }>; flagCounts: Record; errorCount: number; warnCount: number; } export declare function htmlUrlToMarkdownUrl(pageUrl: string): string; export declare function parseMarkdownIndexUrls(text: string, baseUrl: string): string[]; /** CMS Mustache placeholders ({{var}} / {{{var}}}), not JSON `}}` closers or `{search_term_string}`. */ export declare function hasUnfilledMustache(text: string): boolean; /** Whether a sitemap page URL should have a working .md export. */ export declare function shouldExpectMarkdown(pageUrl: string, pathname: string, skipMarkdownPathPrefixes: string[]): boolean; export declare function runProductionSeoAudit(config: ProductionSeoAuditConfig): Promise; export declare function rowsToCsv(rows: ProductionSeoAuditRow[]): string; export interface RichResultsSpotCheck { label: string; url: string; result: 'pass' | 'fail' | 'warn'; notes: string; } export declare function evaluateRichResultsSpotCheck(input: { label: string; url: string; httpStatus: number; schemaTypes: Set; jsonldErrors: string[]; }): RichResultsSpotCheck; export declare function pickRichResultsSampleUrls(rows: ProductionSeoAuditRow[], baseUrl: string): { label: string; url: string; }[]; export declare function buildRichResultsSpotChecks(rows: ProductionSeoAuditRow[], config: ProductionSeoAuditConfig): RichResultsSpotCheck[]; export declare function buildMarkdownReport(result: ProductionSeoAuditResult, config: ProductionSeoAuditConfig, richResults?: RichResultsSpotCheck[]): string; export declare function writeProductionSeoAuditOutputs(result: ProductionSeoAuditResult, config: ProductionSeoAuditConfig, richResults?: RichResultsSpotCheck[]): Promise<{ csvPath: string; mdPath: string; }>; export declare function getProductionAuditExitCode(result: ProductionSeoAuditResult): number; //# sourceMappingURL=index.d.ts.map