import type { LineActionEntry } from '../template/MasterDocumentTemplate.types'; import type { DocumentLineData } from '../MasterDocument.types'; import type { IMasterDocumentAdapter, DocumentState } from '../adapter/MasterDocumentAdapter.types'; /** * Evalúa el gateo de una acción de línea adicional (declarada en * `template.lineActionRegistry`) SIN asumir un `line.status` canónico. Lo usa * `getLineActions` en `SmartMasterDocument` para decidir, por fila, si la acción * es visible y si está deshabilitada: * * - `statusField` + `visibleStates`/`disabledStates` → contra `line[statusField]`. * - `visibleDocStates`/`disabledDocStates` → contra el `docState` del documento. * - `permissionVisibility` → oculta si el usuario no tiene el permiso. * - Sin declaración → visible y habilitada. */ export declare function evaluateLineActionGate(entry: LineActionEntry, line: DocumentLineData, docState: string, permissions: string[] | null): { visible: boolean; disabled: boolean; }; /** * Sustituye los placeholders del `endpoint.path` de una acción de línea por el * documentId y el lineId. Soporta `{id}` y `{documentId}` (documento) y * `{lineId}` (línea). Lo usa la vía POR DEFECTO de ejecución de acciones de línea * (`adapter.genericFetch`) cuando el adapter no implementa `executeLineAction`. */ export declare function buildLineActionPath(path: string, documentId: string | undefined, lineId: string): string; /** * Resultado de ejecutar una acción de línea: separa la DECISIÓN (qué pasó y cómo * resincronizar) de los efectos (dispatch/toast), para poder testearla sin render. */ export interface LineActionOutcome { /** `false` ⇒ mostrar `error` en el modal y no cerrar. */ ok: boolean; /** Mensaje de éxito (toast) cuando `ok`. */ message?: string; /** Mensaje de error (modal) cuando `!ok`. */ error?: string; /** * Clave i18n del error cuando el mensaje lo generó el kit y no el backend. * * Este módulo es una función pura consumida desde hooks, así que no puede llamar * a `useMasterDocumentTranslation`. En su lugar propaga la clave: el hook * llamante hace `errorKey ? t(errorKey) : error`. `error` viene relleno con el * texto español del catálogo para que un consumidor que ignore `errorKey` siga * mostrando algo legible. */ errorKey?: string; /** Si presente, el caller hace `MERGE_STATE` con este payload. */ merge?: Partial; /** Si `true`, el caller recarga el documento (`getDocument` + `LOAD_SUCCESS`). */ refetch?: boolean; } export declare function runLineAction(adapter: IMasterDocumentAdapter, state: DocumentState, entry: LineActionEntry, actionKey: string, lineId: string, payload: Record): Promise; //# sourceMappingURL=lineActionGating.d.ts.map