import { AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core';
import { NgControl } from '@angular/forms';
import { AmountOptions } from './amount-options';
import * as i0 from "@angular/core";
export declare class AmountFormatDirective implements OnInit, AfterViewInit, OnDestroy {
    private readonly elementRef;
    private readonly ngControl?;
    private readonly ngZone?;
    private readonly cd?;
    private readonly subscriptions;
    private previousLang;
    private readonly maximumFractionDigits;
    private isInsideAngularZone;
    private options;
    private markedAsDirty;
    private cursorPointer;
    constructor(elementRef: ElementRef<HTMLInputElement>, globalOptions: AmountOptions, ngControl?: NgControl | undefined, ngZone?: NgZone | undefined, cd?: ChangeDetectorRef | undefined);
    get isInAngularZone(): boolean;
    get dirty(): boolean;
    get element(): HTMLInputElement;
    get amountFormatOptions(): Partial<AmountOptions>;
    set amountFormatOptions(options: Partial<AmountOptions>);
    setLang(lang: string): void;
    getCursorPosition(): number;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    subscribeToElementEvents(): void;
    unsubscribeFromElementEvents(): void;
    formatOnBlur(): void;
    format(): void;
    private isIncorrectPreviewAfterBlur;
    /**
     * note: after reset model value then control override view model
     */
    private resetModelValue;
    private replaceAllInvalidSymbolsBeforeTranslation;
    private getMaximumFractionDigits;
    private getLastSymbolsAsZeroDot;
    private prepareConvertedToLocaleValue;
    private setModelValueBy;
    private getConvertedToLocaleString;
    private getNumberValueWithGaussRounded;
    private lastSymbolIsFraction;
    private replaceInvalidFractionPosition;
    private removeDuplicateMinusOrFractionSymbol;
    private viewModelIsOnlyMinus;
    private getFractionSeparator;
    private removeNonNumericSymbols;
    private setSelectionRangeBy;
    private setFirstLocalOptionsByGlobal;
    private recalculateWhenChangesOptions;
    private preventExpressionChangedAfter;
    private setupElementType;
    static ɵfac: i0.ɵɵFactoryDeclaration<AmountFormatDirective, [null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AmountFormatDirective, "[amountFormat]", never, { "amountFormatOptions": "amountFormatOptions"; }, {}, never>;
}
//# sourceMappingURL=amount-format.directive.d.ts.map