import type { Nullable } from '../../typings/utility-types';
import type { DecimalOptions } from './CurrencyInputHelper';
import type { CursorMap } from './CursorHelper';
export interface DecimalFormattingOptions {
    /** Устанавливает минимальное количество отображаемых знаков после запятой. */
    fractionDigits?: Nullable<number>;
    /** Убирает лишние нули после запятой. */
    hideTrailingZeros?: boolean;
    /** Устанавливает разделители для тысячных разрядов. */
    thousandsDelimiter?: string;
    /** Устанавливает знак минуса. */
    minusSign?: string;
}
type DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;
export interface FormattingInfo {
    raw: string;
    formatted: string;
    cursorMap: CursorMap;
}
export declare class CurrencyHelper {
    static defaultOptions: DecimalFormattingOptionsInternal;
    static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal;
    static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo;
    static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap;
    static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string;
    static parse(value: string): Nullable<number>;
    static unformatString(value: string): string;
    static formatForClipboard(value: string): string;
    static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string;
    static isValidString(value: string, options: DecimalOptions): boolean;
    static extractValid(value: string, options: DecimalOptions): string;
    static destructString(value: string): {
        sign: string;
        integer: string;
        delimiter: string;
        fraction: string;
        exponent: string;
    } | null;
    private static toDecimalString;
}
export {};
