import { FormControl } from '@angular/forms'; import { Color } from '@ionic/core'; import { ComponentState } from '../../types'; /** * Currency configuration. */ export interface CurrencyConfig { /** Currency code (ISO 4217, e.g., 'USD', 'MXN', 'EUR') */ code: string; /** Currency symbol (e.g., '$', '€', '£') */ symbol: string; /** Currency name */ name: string; /** Symbol position */ symbolPosition?: 'prefix' | 'suffix'; /** Decimal separator */ decimalSeparator?: string; /** Thousands separator */ thousandsSeparator?: string; /** Number of decimal places */ decimalPlaces?: number; } /** * Common currency configurations. */ export declare const COMMON_CURRENCIES: CurrencyConfig[]; /** * Metadata for the currency input component. */ export interface CurrencyInputMetadata { /** Form control for the numeric value (stores raw number) */ control: FormControl; /** Unique token for the input */ token?: string; /** Display label */ label?: string; /** Field name */ name?: string; /** Help text */ hint?: string; /** Input placeholder */ placeholder?: string; /** Field state */ state?: ComponentState; /** Currency configuration */ currency?: CurrencyConfig; /** Currency code (shortcut if not providing full config) */ currencyCode?: string; /** Available currencies for selector */ currencies?: CurrencyConfig[]; /** Show currency selector */ showCurrencySelector?: boolean; /** Allow negative values */ allowNegative?: boolean; /** Number of decimal places (overrides currency default) */ decimalPlaces?: number; /** Show thousands separator */ showThousandsSeparator?: boolean; /** Show currency symbol */ showSymbol?: boolean; /** Minimum value */ min?: number; /** Maximum value */ max?: number; /** Component color */ color?: Color; /** Fill style */ fill?: 'outline' | 'solid'; /** Label placement */ labelPlacement?: 'fixed' | 'floating' | 'stacked' | 'start' | 'end'; /** Custom CSS class */ cssClass?: string; /** Content key for reactive label */ labelContentKey?: string; /** Content key for reactive placeholder */ placeholderContentKey?: string; /** Content key for reactive hint */ hintContentKey?: string; /** Component class name for content lookup */ contentClass?: string; /** Custom error messages */ errors?: Record; /** Show validation errors */ showErrors?: boolean; } /** * Event emitted when currency input changes. */ export interface CurrencyInputChangeEvent { /** Raw numeric value */ value: number | null; /** Formatted display value */ formattedValue: string; /** Selected currency */ currency: CurrencyConfig; }