import { MoneyInputProps } from './money-input.types';
/**
 * # MoneyInput
 *
 * A specialized input component for entering monetary amounts with currency selection.
 * Supports high precision values and automatic locale-based formatting.
 *
 * ## Usage
 *
 * ### Modern API (Recommended)
 *
 * Use the modern event handlers for better type safety and cleaner code:
 *
 * ```tsx
 * function MyComponent() {
 *   const [value, setValue] = useState<TValue>({
 *     amount: "",
 *     currencyCode: "USD",
 *   });
 *
 *   return (
 *     <MoneyInput
 *       value={value}
 *       currencies={["USD", "EUR", "GBP"]}
 *       onValueChange={setValue} // Recommended: handles complete value changes
 *       onAmountChange={(amount) => console.log("Amount:", amount)}
 *       onCurrencyChange={(currency) => console.log("Currency:", currency)}
 *     />
 *   );
 * }
 * ```
 *
 * ### Legacy API (Deprecated)
 *
 * For backward compatibility only - migrate to modern API when possible:
 *
 * ```tsx
 * function LegacyComponent() {
 *   const [value, setValue] = useState<TValue>({ amount: "", currencyCode: "USD" });
 *
 *   const handleChange = (event: TCustomEvent) => {
 *     const { name, value } = event.target;
 *     if (name?.endsWith(".amount")) {
 *       setValue(prev => ({ ...prev, amount: value as string }));
 *     } else if (name?.endsWith(".currencyCode")) {
 *       setValue(prev => ({ ...prev, currencyCode: value as CurrencyCode }));
 *     }
 *   };
 *
 *   return (
 *     <MoneyInput
 *       value={value}
 *       currencies={["USD", "EUR"]}
 *       onChange={handleChange} // Deprecated - use onValueChange instead
 *     />
 *   );
 * }
 * ```
 *
 * ## Features
 *
 * - **Type-safe currency handling** with CurrencyCode enum
 * - **High precision support** for values exceeding standard currency precision
 * - **Automatic locale formatting** using React Aria NumberField
 * - **Accessibility compliant** following WCAG 2.1 AA standards
 * - **Dual API support** for backward compatibility and modern development
 */
export declare const MoneyInput: {
    (props: MoneyInputProps): import("react/jsx-runtime").JSX.Element;
    getAmountInputId(id?: string): string | undefined;
    getCurrencyDropdownId(id?: string): string | undefined;
    convertToMoneyValue: (value: import('..').MoneyInputValue, locale: string) => import('..').MoneyValue | null;
    parseMoneyValue: (moneyValue: import('..').MoneyValue, locale: string) => import('..').MoneyInputValue;
    isEmpty: (formValue: import('..').MoneyInputValue) => boolean;
    isHighPrecision: (formValue: import('..').MoneyInputValue, locale: string) => boolean;
    displayName: string;
};
