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;
