import { LitElement } from 'lit'; /** Tipo de línea de un diff unificado. */ export type OkDiffLineType = 'add' | 'del' | 'ctx' | 'hunk'; /** Una línea del visor de diff. */ export interface OkDiffLine { /** add = añadida, del = eliminada, ctx = contexto, hunk = cabecera @@…@@. */ type: OkDiffLineType; /** Texto de la línea (sin el glifo +/−; el glifo lo pinta el componente). */ content: string; /** Número de línea en el fichero original (old). */ oldNo?: number; /** Número de línea en el fichero nuevo (new). */ newNo?: number; } export declare class OkDiff extends LitElement { static styles: import("lit").CSSResult; /** Series de líneas declarativas (tiene prioridad sobre `raw`). */ lines: OkDiffLine[]; /** Diff unificado en crudo; se parsea a líneas si no se aportó `.lines`. */ raw: string; /** Devuelve las líneas a renderizar: `.lines` si existe, si no parsea `raw`. */ private resolveLines; /** * Parsea un diff unificado (texto) a OkDiffLine[]. CSP-safe (sin eval): * solo recorre líneas y lleva la cuenta de oldNo/newNo según las cabeceras * de hunk `@@ -a,b +c,d @@`. Ignora cabeceras de fichero (---, +++). */ static parseUnified(raw: string): OkDiffLine[]; /** Texto de la columna numérica (vacío si no hay número). */ private static numText; private renderLine; render(): unknown; } declare global { interface HTMLElementTagNameMap { 'ok-diff': OkDiff; } }