import type { LineItemsTotals } from '../business/line-items'; /** PartyCard: lo que se muestra de la contraparte. */ export interface PartySummary { id: string; name: string; tax_id?: string; email?: string; phone?: string; currency?: string; /** Filas extra (incluye las de extensiones `fiscal_data.*`). */ rows: Array<{ key: string; label: string; value: string; tone?: 'ok' | 'warn' | 'err'; }>; credit?: { limit: number; balance: number; available: number; overdue: number; status?: 'active' | 'suspended' | 'delinquent'; hold_reason?: string; }; } /** TotalsPanel: desglose; los impuestos por tasa los aporta el addon fiscal o el core. */ export interface TotalsBreakdown extends LineItemsTotals { taxes: Array<{ label: string; base: number; amount: number; }>; /** Renglones extra (aplicaciones, saldo a favor, sin aplicar…). */ extra?: Array<{ label: string; amount: number; emphasis?: boolean; }>; amount_in_words?: string; } /** PreviewPanel: resultado de la acción de vista previa (`analyze: true`, no escribe). */ export interface PreviewResult { pdf_base64?: string; xml?: string; html?: string; checks: ValidationCheck[]; } /** ValidationChecklist: una revisión (local o del servidor). */ export interface ValidationCheck { key: string; severity: 'ok' | 'warning' | 'error'; message: string; /** Campo a enfocar al hacer clic. */ field?: string; /** Si es error y `approval_policy` está, el botón ofrece «Pedir autorización». */ approval_policy?: string; } /** LoadFromDocument: candidato a cargar (venta, cotización, ticket, OT, factura origen de NC). */ export interface LoadCandidate { source: string; id: string; label: string; party_id?: string; total?: number; state?: string; } export declare function blockingChecks(checks: readonly ValidationCheck[]): ValidationCheck[]; //# sourceMappingURL=panels.d.ts.map