import { MessageFormatElement } from 'intl-messageformat-parser'; export interface Formats { number: Record; date: Record; time: Record; } export interface FormatterCache { number: Record; dateTime: Record; pluralRules: Record; } export interface Formatters { getNumberFormat(...args: ConstructorParameters): Intl.NumberFormat; getDateTimeFormat(...args: ConstructorParameters): Intl.DateTimeFormat; getPluralRules(...args: ConstructorParameters): Intl.PluralRules; } export declare const enum PART_TYPE { literal = 0, argument = 1 } export interface LiteralPart { type: PART_TYPE.literal; value: string; } export interface ArgumentPart { type: PART_TYPE.argument; value: any; } export declare type MessageFormatPart = LiteralPart | ArgumentPart; export declare type PrimitiveType = string | number | boolean | null | undefined | Date; export declare function formatToParts(els: MessageFormatElement[], locales: string | string[], formatters: Formatters, formats: Formats, values?: Record, originalMessage?: string): MessageFormatPart[]; export declare function formatToString(els: MessageFormatElement[], locales: string | string[], formatters: Formatters, formats: Formats, values?: Record, originalMessage?: string): string; export declare type FormatXMLElementFn = (...args: any[]) => string | object; export declare function formatXMLMessage(els: MessageFormatElement[], locales: string | string[], formatters: Formatters, formats: Formats, values?: Record, originalMessage?: string): Array;