import type { DocumentContext, DocumentSpec, Predicate, ResolvedActionLayout, StatusDef, StatusMachine, When } from './types'; /** Máximo de secundarias visibles; el resto pasa a «Más…» (§5.2 / §6.2). */ export declare const MAX_VISIBLE_SECONDARY = 3; /** * Lee una ruta del contexto. `$.x` son los derivados; `sources.k.length` es el * total de una fuente; el resto cuelga del registro (`record.x` o `x`). */ export declare function readPath(ctx: DocumentContext, path: string): unknown; export declare function evaluatePredicate(p: Predicate, ctx: DocumentContext): boolean; /** Un arreglo es un AND; sin condición siempre se cumple. */ export declare function evaluateWhen(when: When | undefined, ctx: DocumentContext): boolean; /** Estado actual de una máquina para el registro (o su fallback / un estado desconocido explícito). */ export declare function resolveStatus(machine: StatusMachine, ctx: DocumentContext): StatusDef | undefined; /** * Distribución de acciones para el estado actual. Una acción `hiddenWhen` se * omite; una `blockedWhen` queda deshabilitada con motivo. Más de * `MAX_VISIBLE_SECONDARY` secundarias se derraman a «Más…»; una acción marcada * `destructive` siempre va a la zona destructiva aunque el layout la ponga en otro lado. */ export declare function resolveActions(spec: DocumentSpec, ctx: DocumentContext): ResolvedActionLayout; /** Interpola `{{campo}}` con valores del registro (sin evaluar código). */ export declare function interpolate(template: string, ctx: DocumentContext): string; /** Título: la interpolación puede dejar vacío el resultado; se prueban alternativas separadas por `||`. */ export declare function resolveTitle(template: string, ctx: DocumentContext): string; /** * Quita del spec las acciones que dependen de una acción del modelo que el * backend (o el addon que la aporta) no declara: mejor un botón menos que uno * que abre un modal vacío. Las que resuelve la propia página (`href`/`openUrl`/`tab`) siempre se conservan. */ export declare function pruneUnavailableActions(spec: DocumentSpec, availableModelActions: Iterable): DocumentSpec; //# sourceMappingURL=evaluate.d.ts.map