import { type ReactNode } from 'react'; import type { CreditStatus, EditorIssue } from './document-editor-model'; import type { Formatter } from './format'; import { type LineItem } from './line-items'; /** Bloque con título discreto y espaciado generoso (sin bordes pesados). */ export declare function EditorSection({ title, hint, children, slot }: { title?: ReactNode; hint?: ReactNode; children: ReactNode; slot?: string; }): import("react").JSX.Element; export interface CollapsibleSectionProps { title: ReactNode; /** Resumen de una línea cuando está cerrada (p. ej. «G03 · PUE»). */ summary?: ReactNode; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; children: ReactNode; slot?: string; } /** * Sección plegable. El contenido queda MONTADO aunque esté cerrada (`hidden`): * las contribuciones de otros addons siguen aplicando defaults y reportando * revisiones sin que el usuario abra la sección. */ export declare function CollapsibleSection({ title, summary, open, defaultOpen, onOpenChange, children, slot }: CollapsibleSectionProps): import("react").JSX.Element; export interface PartyCardProps { name?: string; rows: Array<{ key: string; label: string; value: string; }>; credit?: CreditStatus | null; fmt: Formatter; children?: ReactNode; } /** Tarjeta compacta de la contraparte: nombre, 3-6 datos clave y estado de crédito. */ export declare function PartyCard({ name, rows, credit, fmt, children }: PartyCardProps): import("react").JSX.Element; export interface TotalsRow { label: string; value: string; emphasis?: boolean; } /** Totales alineados a la derecha; la última fila con `emphasis` es el total. */ export declare function TotalsPanel({ rows, muted }: { rows: TotalsRow[]; muted?: boolean; }): import("react").JSX.Element; /** Lista de revisión: errores (rojo) y avisos (ámbar). Vacía → no pinta nada. */ export declare function ValidationChecklist({ issues, title }: { issues: EditorIssue[]; title?: string; }): import("react").JSX.Element | null; export interface PreviewContent { xml?: string; html?: string; pdf_url?: string; pdf_base64?: string; } /** Contenido de la vista previa (PDF, HTML o XML, en ese orden de preferencia). */ export declare function PreviewPanel({ preview }: { preview: PreviewContent | null; }): import("react").JSX.Element | null; export interface DraftPreviewProps { title: string; party?: string; /** Datos del encabezado ya con su etiqueta y valor legibles. */ header: Array<{ label: string; value: string; }>; lines: LineItem[]; totals: TotalsRow[]; fmt: Formatter; } /** * Vista previa local del documento (sin servidor ni borrador): cómo queda con * lo capturado. Para tipos sin acción `preview`; la del servidor (PDF/XML) gana. */ export declare function DraftPreview({ title, party, header, lines, totals, fmt }: DraftPreviewProps): import("react").JSX.Element; //# sourceMappingURL=document-editor-panels.d.ts.map