import { RenderTimeStringOptions } from '../util';
import { Field, NumberCell } from '../data_tree';
import { Tag } from '@malloydata/malloy-tag';
/**
 * Renders a numeric field with formatting based on tags.
 *
 * Supports:
 * - Currency shorthand: # currency=usd2m, # currency=eur0k
 * - Currency verbose: # currency { scale=m decimals=2 suffix=finance }
 * - Number shorthand: # number=1k, # number=0m, # number=auto
 * - Number verbose: # number { scale=m decimals=2 suffix=word }
 * - Legacy: # number=big, # currency=euro
 */
export declare function renderNumericField(f: Field, value: number | null | undefined, tagOverride?: Tag): string;
/**
 * Render a big number value (stored as string for precision).
 * Used when NumberCell.stringValue is defined (bigint/bigdecimal subtypes).
 * Default formatting preserves full precision with comma separators.
 *
 * Note: percent, duration, scale, and custom number formats are lossy for values > 2^53
 * because they require numeric operations. This is acceptable for abbreviated display.
 */
export declare function renderBigNumberField(f: Field, value: string | null | undefined, tagOverride?: Tag): string;
/**
 * Render a NumberCell for display, automatically handling bigint precision.
 *
 * USE THIS FUNCTION when rendering numeric values from cells in plugins/components.
 *
 * Why this exists:
 * - NumberCell.value is always a JS number, which loses precision for integers > 2^53
 * - NumberCell.stringValue preserves full precision for bigint fields
 * - This function automatically picks the right representation
 *
 * Example:
 *   import {renderNumberCell} from '@/component/render-numeric-field';
 *   const displayValue = renderNumberCell(cell);
 *
 * @param cell - A NumberCell from the data tree
 * @param tagOverride - Optional tag to use for formatting (e.g., for array elements, use the array field's tag)
 * @returns Formatted string for display, respecting field tags (currency, percent, etc.)
 */
export declare function renderNumberCell(cell: NumberCell, tagOverride?: Tag): string;
export declare function renderDateTimeField(f: Field, value: Date | null | undefined, options?: RenderTimeStringOptions, tagOverride?: Tag): string;
