import { ElementRef, EventEmitter, KeyValueDiffers, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { LocaleService } from '@seniorsistemas/angular-components/locale';
import { CurrencyMaskDirective } from 'ng2-currency-mask';
import * as i0 from "@angular/core";
/**
 * @deprecated Should use 'AlignmentOptions' from @seniorsistemas/ng2-currency-mask instead
 */
export declare enum NumberAlignmentOption {
    RIGHT = "right",
    LEFT = "left"
}
/**
 * @deprecated Should use BigNumberInput directive instead
 */
export declare class NumberInputDirective extends CurrencyMaskDirective implements OnInit, OnChanges, OnDestroy {
    private readonly _elementRef;
    private readonly localeService;
    precision: number;
    scale: number;
    decimalSeparator?: string;
    thousandsSeparator?: string;
    alignTo: NumberAlignmentOption;
    allowNegative: boolean;
    placeholder?: string;
    maxLength?: number;
    pasteRejected: EventEmitter<string>;
    private pasteListener;
    private _maxLength;
    private keypressListener;
    constructor(_elementRef: ElementRef, _keyValueDiffers: KeyValueDiffers, localeService: LocaleService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private _onPaste;
    private _onKeypress;
    /**
     * Update the options values according to the directive input values.
     */
    private updateVariables;
    /**
     * Responsible to calculate the field maximum length considering the separators.
     */
    private calculateMaxLength;
    private onLocaleService;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumberInputDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumberInputDirective, "input[sNumberInput]", never, { "precision": { "alias": "precision"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; "decimalSeparator": { "alias": "decimalSeparator"; "required": false; }; "thousandsSeparator": { "alias": "thousandsSeparator"; "required": false; }; "alignTo": { "alias": "alignTo"; "required": false; }; "allowNegative": { "alias": "allowNegative"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, { "pasteRejected": "pasteRejected"; }, never, never, false, never>;
}
