import { LitElement } from 'lit'; export interface IntlFormatterProps { type?: 'date' | 'number' | 'percent' | 'currency'; value?: number | string | Date; lang?: string; date?: Date | string; weekday?: 'narrow' | 'short' | 'long'; era?: 'narrow' | 'short' | 'long'; year?: 'numeric' | '2-digit'; month?: 'numeric' | '2-digit' | 'narrow' | 'short' | 'long'; day?: 'numeric' | '2-digit'; hour?: 'numeric' | '2-digit'; minute?: 'numeric' | '2-digit'; second?: 'numeric' | '2-digit'; timeZoneName?: 'short' | 'long'; timeZone?: string; hourFormat?: 'auto' | '12' | '24'; dateStyle?: 'full' | 'long' | 'medium' | 'short'; timeStyle?: 'full' | 'long' | 'medium' | 'short'; noGrouping?: boolean; currency?: string; currencyDisplay?: 'symbol' | 'narrowSymbol' | 'code' | 'name'; minimumIntegerDigits?: number; minimumFractionDigits?: number; maximumFractionDigits?: number; minimumSignificantDigits?: number; maximumSignificantDigits?: number; } /** * @element ag-intl-formatter * @summary Formats dates, numbers, currency, and percentages using the browser's Intl API * * @prop {string} type - The type of formatting: 'date', 'number', 'percent', or 'currency' * @prop {number|string|Date} value - The value to format (for numbers/currency/percent) or date * @prop {string} lang - The locale to use for formatting (e.g., 'en-US', 'fr-FR'). Defaults to browser locale * * @fires format-error - Dispatched when formatting fails with details about the error * * @csspart date-time - The time element wrapper for date formatting * @csspart number - The span element for number formatting * @csspart percent - The span element for percent formatting * @csspart currency - The span element for currency formatting * @csspart error - The span element shown when validation fails * * @example * ```html * * * * * * * * * * * * * * * ``` */ export declare class IntlFormatter extends LitElement implements IntlFormatterProps { type: 'date' | 'number' | 'percent' | 'currency'; value: number | string | Date; lang: string; date: Date | string; weekday: 'narrow' | 'short' | 'long'; era: 'narrow' | 'short' | 'long'; year: 'numeric' | '2-digit'; month: 'numeric' | '2-digit' | 'narrow' | 'short' | 'long'; day: 'numeric' | '2-digit'; hour: 'numeric' | '2-digit'; minute: 'numeric' | '2-digit'; second: 'numeric' | '2-digit'; timeZoneName: 'short' | 'long'; timeZone: string; hourFormat: 'auto' | '12' | '24'; dateStyle: 'full' | 'long' | 'medium' | 'short'; timeStyle: 'full' | 'long' | 'medium' | 'short'; noGrouping: boolean; currency: string; currencyDisplay: 'symbol' | 'narrowSymbol' | 'code' | 'name'; minimumIntegerDigits: number; minimumFractionDigits: number; maximumFractionDigits: number; minimumSignificantDigits: number; maximumSignificantDigits: number; private _formatterCache; constructor(); /** * Get the locale to use for formatting */ private _getLocale; /** * Generate a cache key based on formatter type and options */ private _getCacheKey; /** * Dispatch a format error event */ private _dispatchError; /** * Validate component properties based on type */ private _validate; /** * Format a date value using Intl.DateTimeFormat */ private _formatDate; /** * Format a number value using Intl.NumberFormat */ private _formatNumber; /** * Render the formatted value */ render(): import('lit').TemplateResult<1>; /** * Clean up formatter cache when component is removed */ disconnectedCallback(): void; } //# sourceMappingURL=_IntlFormatter.d.ts.map