import { Field } from '../data_tree'; import { ScaleKey, SuffixFormatKey } from '../util'; export interface ImageTagConfig { width?: string; height?: string; alt?: string; altField?: string; } export declare function resolveImageTags(field: Field): ImageTagConfig; export interface LinkTagConfig { linkField?: string; urlTemplate?: string; } export declare function resolveLinkTags(field: Field): LinkTagConfig; export interface ListTagConfig { isListDetail: boolean; } export declare function resolveListTags(field: Field): ListTagConfig; export interface CurrencyConfig { symbol: string; scale?: ScaleKey | 'auto'; decimals?: number; suffixFormat: SuffixFormatKey; } export interface NumberConfig { formatString?: string; scale?: ScaleKey | 'auto'; decimals?: number; suffixFormat?: SuffixFormatKey; isId?: boolean; isBig?: boolean; } export interface DurationConfig { unit: string; terse: boolean; } export type CellFormatConfig = { mode: 'currency'; currency: CurrencyConfig; } | { mode: 'percent'; } | { mode: 'duration'; duration: DurationConfig; } | { mode: 'number'; number: NumberConfig; } | { mode: 'dateFormat'; formatString: string; } | { mode: 'default'; }; export declare function resolveCellFormatTags(field: Field): CellFormatConfig; export interface ColumnTagConfig { width: number | null; height: number | null; wordBreak: boolean; } export interface TableNestConfig { fillSize: boolean; transposeLimit?: number; pivotDimensions?: string[]; } export interface DashboardNestConfig { maxTableHeight: number | null; } /** * Run the appropriate tag resolver for a field based on its renderAs type * and store the result on the field. Called during registerFields(). * * Also resolves cross-cutting tag properties (label, column) * for ALL fields, ensuring all tag access happens at setup time. * Components use the resolved configs instead of reading tags directly. */ export declare function resolveBuiltInTags(field: Field): void;