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