import { LitElement } from 'lit'; import '../Icon/Icon'; declare global { interface HTMLElementTagNameMap { 'ctt-input-money': CttInputMoney; } } declare const CttInputMoney_base: (new (...args: any[]) => import("../../utils/form-associated-mixin").FormAssociatedBase) & typeof LitElement; /** * CTT InputMoney Component * * A money input component with Euro currency formatting and RTL text direction. * Provides automatic number formatting, validation, error handling, and accessibility features. * * **Input Limitations:** * - Maximum of 14 digits to prevent JavaScript precision issues * - Supports values up to 999,999,999,999.99 euros (nearly 1 trillion) * - Automatically caps input to prevent numeric overflow * * @fires input - Fired when the input value changes * @fires change - Fired when the input loses focus and value has changed * @fires focus - Fired when the input gains focus * @fires blur - Fired when the input loses focus * * @example * ```html * * ``` */ export declare class CttInputMoney extends CttInputMoney_base { static styles: import("lit").CSSResult; /** * Maximum number of digits allowed to prevent JavaScript precision issues * This allows values up to 999,999,999,999.99 euros (nearly 1 trillion) */ private static readonly MAX_DIGITS; private inputElement; /** * The label text to display above the input */ label: string; /** * The name attribute for the input element */ name: string; /** * The numeric value of the money input (in cents to avoid floating point issues) */ get value(): number; set value(val: number); private _numericValue; private _generatedId; /** * The formatted display value (what the user sees) */ private _displayValue; /** * Placeholder text for the input */ placeholder: string; /** * Whether the input is disabled */ disabled: boolean; /** * Whether the input is required */ required: boolean; /** * Whether the input is readonly */ readonly: boolean; /** * Size variant of the input field */ size: 'small' | 'medium' | 'large'; /** * Minimum value allowed (in euros) */ min: number; /** * Maximum value allowed (in euros) */ max: number; /** * Step increment for the input (in euros) */ step: number; /** * Hint text to display below the input */ hint: string; /** * Unique identifier for the input */ id: string; /** * Aria-describedby for additional accessibility */ ariaDescribedBy: string | null; constructor(); connectedCallback(): void; disconnectedCallback(): void; private get inputId(); private get labelId(); private get errorId(); private get hasError(); private get ariaDescribedByValue(); /** * Format number to Euro display format using the global formatNumber utility * (1234.56 -> "1.234,56") */ private _formatEuroDisplay; /** * Update the display value based on numeric value */ private _updateDisplayValue; /** * Handle input events with Euro formatting - money input style */ private _onInput; private _onChange; private _onFocus; private _onBlur; /** * Handle paste events */ private _onPaste; /** * Handle key press to restrict input to numeric characters only */ private _onKeyPress; /** * Handle keydown for special keys like backspace */ private _onKeyDown; protected _isValid(): boolean; protected _getValidationMessage(): string; protected _getNativeInput(): HTMLInputElement | undefined; render(): import("lit-html").TemplateResult<1>; } export {};