/** * QuickLook PPTX Linter — detect compatibility issues before they surprise users. * * Parses a PPTX and checks every shape, text run, table, and fill against * known OfficeImport quirks. No rendering required — just parse and check. * * Each issue carries a typed `fix` object with machine-readable remediation * data so downstream tools (like pptx-fix) can apply transforms without * re-detecting the problem. */ export type Severity = "error" | "warn" | "info"; export type RuleId = "unsupported-geometry" | "opaque-pdf-block" | "gradient-flattened" | "font-substitution" | "table-style-unresolved" | "group-as-pdf" | "chart-no-fallback" | "text-inscription-shift" | "rotation-forces-pdf" | "geometry-forces-pdf" | "vertical-text" | "embedded-font" | "text-overflow" | "text-overlap"; /** Machine-readable remediation data — one variant per fix strategy. */ export type LintFix = { action: "replace-geometry"; current: string; suggested: string; } | { action: "strip-effects"; } | { action: "reduce-stops"; firstColor: string; lastColor: string; averageColor: string; angle?: number; } | { action: "replace-font"; from: string; macTarget: string; widthDelta: number; alternatives: Array<{ font: string; widthDelta: number; }>; } | { action: "inline-borders"; tableStyleId: string; } | { action: "add-fallback-image"; } | { action: "ungroup"; childCount: number; containsPictures: boolean; } | { action: "strip-embedded-fonts"; fonts: Array<{ name: string; replacement?: string; }>; }; export interface LintIssue { rule: RuleId; severity: Severity; slide: number; element?: string; message: string; suggestion?: string; fix?: LintFix; } export interface LintResult { issues: LintIssue[]; summary: { errors: number; warnings: number; info: number; slides: number; }; } /** Maps commonly-used unsupported OOXML presets to visually-closest supported alternative. */ export declare const GEOMETRY_FALLBACKS: Record; export declare function lint(pptxBuffer: Buffer): Promise; export declare function formatIssues(result: LintResult): string;