import { type IFormatTemplate } from "../typings.js";
/**
 * Base template definition without localized name.
 * @internal
 */
export interface ITemplateDefinition {
    localIdentifier: string;
    format: string;
    messageId: string;
}
/**
 * Standard format template definitions (basic numeric formats).
 * @internal
 */
export declare const STANDARD_TEMPLATE_DEFINITIONS: readonly ITemplateDefinition[];
/**
 * Currency template definitions are now empty - currency formats have been moved to presets.
 * This array is kept for backward compatibility but should not be used.
 * @internal
 * @deprecated Currency formats are now in CURRENCY_PRESET_DEFINITIONS
 */
export declare const CURRENCY_TEMPLATE_DEFINITIONS: readonly ITemplateDefinition[];
/**
 * Advanced format template definitions (complex conditional formats).
 * @internal
 */
export declare const ADVANCED_TEMPLATE_DEFINITIONS: readonly ITemplateDefinition[];
/**
 * Local identifiers of templates that are currency-specific.
 * Used to filter templates when metric type is CURRENCY.
 * @internal
 */
export declare const CURRENCY_TEMPLATE_IDS: string[];
/**
 * Default message ID prefix for template definitions.
 * @internal
 */
export declare const DEFAULT_TEMPLATE_PREFIX = "measureNumberFormat.numberFormat.template";
/**
 * Creates localized format templates.
 *
 * @param formatMessage - Function to format localized messages (e.g., from react-intl)
 * @param definitions - Template definitions to localize
 * @param messageIdPrefix - Optional prefix for message IDs (default: "measureNumberFormat.numberFormat.template")
 * @returns Array of format templates with localized names
 * @internal
 */
export declare function createTemplates(formatMessage: (descriptor: {
    id: string;
}) => string, definitions: readonly ITemplateDefinition[], messageIdPrefix?: string): IFormatTemplate[];
/**
 * Creates advanced format templates only.
 * These are templates that don't duplicate presets (complex conditional formats).
 *
 * @param formatMessage - Function to format localized messages (e.g., from react-intl)
 * @returns Array of advanced format templates with localized names
 * @internal
 */
export declare function createAdvancedTemplates(formatMessage: (descriptor: {
    id: string;
}) => string): IFormatTemplate[];
/**
 * Creates all localized format templates (standard + currency + advanced).
 *
 * @param formatMessage - Function to format localized messages (e.g., from react-intl)
 * @param messageIdPrefix - Optional prefix for message IDs (default: "measureNumberFormat.numberFormat.template")
 * @returns Array of all format templates with localized names
 * @internal
 * @deprecated Use createAdvancedTemplates instead - standard and currency templates duplicate presets
 */
export declare function createAllTemplates(formatMessage: (descriptor: {
    id: string;
}) => string): IFormatTemplate[];
//# sourceMappingURL=templates.d.ts.map