import type { IndicatorDirection } from './kpiDelta'; import type { TableColumn } from './tableColumns'; /** * Lectura VALIDADA de `config_schema`. * * El problema que resuelve. `config_schema` llega del catálogo como dato sin forma, y los * widgets lo leían con un doble cast — `cfg as unknown as { direction?: …; format?: … }` — que * elude el sistema de tipos por completo. Con eso, un `direction: "mayor"`, un `columns` que no * es un array o un `criticalVolumeThreshold: "5000"` no producen un error localizable: producen * comportamiento indefinido en silencio, a veces varias capas más abajo. * * Aquí la tolerancia es explícita y está en un solo sitio: lo que no encaja se descarta y * se cae al valor por defecto, que es exactamente la degradación que el módulo ya promete para * los widgets sembrados que no declaran nada. */ /** El `config_schema` de un widget, sin suponer nada de su contenido. */ export type WidgetConfig = Record | undefined; export declare function asConfig(config: unknown): WidgetConfig; /** Formatos de cifra que el tablero sabe pintar. */ declare const FORMATS: readonly ["number", "currency", "percent", "integer"]; export type ValueFormat = (typeof FORMATS)[number]; /** El `format` declarado, o `undefined` si no lo declara o declara algo que no existe. */ export declare function readFormat(config: unknown): ValueFormat | undefined; /** * La dirección deseable del indicador. * * `higher-is-better` por defecto, que es lo que hace que nada de lo ya sembrado cambie de * comportamiento al introducir esta propiedad. */ export declare function readDirection(config: unknown): IndicatorDirection; /** Las columnas declaradas de una tabla, solo si son un array con la forma mínima esperada. */ export declare function readColumns(config: unknown): TableColumn[] | undefined; /** Un número positivo declarado en `config_schema`, o el respaldo. */ export declare function readPositiveNumber(config: unknown, key: string, fallback: number): number; /** Una cadena no vacía declarada en `config_schema`. */ export declare function readString(config: unknown, key: string): string | undefined; /** Un sub-objeto de `config_schema` (`series`, `image`), solo si de verdad es un objeto. */ export declare function readObject(config: unknown, key: string): Record | undefined; export {}; //# sourceMappingURL=widgetConfig.d.ts.map