import { OmniFormElement } from '../core/OmniFormElement.js';
import '../label/Label.js';
/**
* Control to enter a formatted currency value.
*
* @import
* ```js
* import '@capitec/omni-components/currency-field';
* ```
* @example
*
* ```html
*
*
* ```
*
* @element omni-currency-field
*
* Registry of all properties defined by the component.
*
* @fires {CustomEvent<{}>} change - Dispatched when the component value changes.
*
* @cssprop --omni-currency-field-text-align - Currency field text align.
* @cssprop --omni-currency-field-font-color - Currency field font color.
* @cssprop --omni-currency-field-font-family - Currency field font family.
* @cssprop --omni-currency-field-font-size - Currency field font size.
* @cssprop --omni-currency-field-font-weight - Currency field font weight.
* @cssprop --omni-currency-field-padding - Currency field padding.
* @cssprop --omni-currency-field-height - Currency field height.
* @cssprop --omni-currency-field-width - Currency field width.
*
* @cssprop --omni-currency-field-disabled-font-color - Currency field disabled font color.
*
* @cssprop --omni-currency-field-label-left-margin - Currency field label left margin.
*
* @cssprop --omni-currency-field-symbol-font-size - Currency field symbol font size.
* @cssprop --omni-currency-field-symbol-color - Currency field symbol font color.
* @cssprop --omni-currency-field-symbol-left-padding - Currency field symbol left padding.
* @cssprop --omni-currency-field-symbol-select - Currency field symbol selectable state.
*
*/
export declare class CurrencyField extends OmniFormElement {
private _inputElement?;
/**
* Currency symbol.
* @attr [currency-symbol]
*/
currencySymbol: string;
/**
* Thousands separator.
* @attr [thousands-separator]
*/
thousandsSeparator: string;
/**
* Fractional separator.
* @attr [fractional-separator]
*/
fractionalSeparator: string;
/**
* Fractional precision.
* @attr [fractional-precision]
*/
fractionalPrecision: number;
/**
* Disables native on screen keyboards for the component.
* @attr [no-native-keyboard]
*/
noNativeKeyboard?: boolean;
/**
* Formatter provided to format the value.
* @attr
*/
formatter: string;
connectedCallback(): void;
protected firstUpdated(): Promise;
focus(options?: FocusOptions | undefined): void;
attributeChangedCallback(name: string, _old: string | null, value: string | null): Promise;
_dispatchChange(amount: number): void;
_isNumber(number: string): boolean;
_isAllZeros(centValue: string): boolean;
_convertToCents(currencyValue: string): string;
_formatToCurrencyValue(value: string): string;
_parseAmount(value: string): number | null;
_setValue(value: string): void;
_parseFraction(value: string): string;
_blurOnEnter(e: KeyboardEvent): void;
_formatToCurrency(preFormattedValue: number | string): Promise;
_formatToFloat(formattedValue: string): string | number;
_onFocusInput(): void;
_onClickInput(): void;
_onBlur(): Promise;
_onPaste(e: ClipboardEvent): void;
_beforeInput(e: InputEvent): void;
static get styles(): import("lit").CSSResultGroup[];
protected renderPrefix(): import("lit-html").TemplateResult<1>;
protected renderContent(): import("lit-html").TemplateResult<1>;
}
declare global {
interface HTMLElementTagNameMap {
'omni-currency-field': CurrencyField;
}
}
//# sourceMappingURL=CurrencyField.d.ts.map