import * as _angular_cdk_bidi from '@angular/cdk/bidi';
import * as _angular_core from '@angular/core';
import { OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { NzSizeLDSType, NzStatus, NzVariant, NzValidateStatus, OnChangeType, OnTouchedType } from 'ng-zorro-antd/core/types';
import * as i2 from 'ng-zorro-antd/input';
import { NzInputPrefixDirective, NzInputSuffixDirective, NzInputAddonBeforeDirective, NzInputAddonAfterDirective } from 'ng-zorro-antd/input';
import * as i1 from 'ng-zorro-antd/space';

declare class NzInputNumberComponent implements OnInit, ControlValueAccessor {
    readonly nzId: _angular_core.InputSignal<string | null>;
    readonly nzSize: _angular_core.InputSignal<NzSizeLDSType>;
    readonly nzPlaceHolder: _angular_core.InputSignal<string | null>;
    readonly nzStatus: _angular_core.InputSignal<NzStatus>;
    readonly nzVariant: _angular_core.InputSignal<NzVariant>;
    readonly nzStep: _angular_core.InputSignalWithTransform<number, unknown>;
    readonly nzMin: _angular_core.InputSignalWithTransform<number, unknown>;
    readonly nzMax: _angular_core.InputSignalWithTransform<number, unknown>;
    readonly nzPrecision: _angular_core.InputSignal<number | null>;
    readonly nzParser: _angular_core.InputSignal<((value: string) => number) | null | undefined>;
    readonly nzFormatter: _angular_core.InputSignal<((value: number) => string) | null | undefined>;
    readonly nzDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly nzReadOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly nzAutoFocus: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * @deprecated Will be removed in v21. It is recommended to use `nzVariant` instead.
     */
    readonly nzBordered: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly nzKeyboard: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly nzControls: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly nzBlur: _angular_core.OutputEmitterRef<void>;
    readonly nzFocus: _angular_core.OutputEmitterRef<void>;
    readonly nzOnStep: _angular_core.OutputEmitterRef<{
        value: number;
        offset: number;
        type: "up" | "down";
    }>;
    private onChange;
    private onTouched;
    private isDisabledFirstChange;
    private compactSize;
    private inputRef;
    private hostRef;
    private elementRef;
    private injector;
    private focusMonitor;
    private directionality;
    private nzFormStatusService;
    private autoStepTimer;
    private defaultFormater;
    protected value: _angular_core.WritableSignal<number | null>;
    protected displayValue: _angular_core.WritableSignal<string>;
    protected dir: _angular_core.Signal<_angular_cdk_bidi.Direction>;
    protected focused: _angular_core.WritableSignal<boolean>;
    protected hasFeedback: _angular_core.WritableSignal<boolean>;
    protected finalStatus: _angular_core.WritableSignal<NzValidateStatus>;
    protected finalDisabled: _angular_core.WritableSignal<boolean>;
    protected prefix: _angular_core.Signal<NzInputPrefixDirective | undefined>;
    protected suffix: _angular_core.Signal<NzInputSuffixDirective | undefined>;
    protected addonBefore: _angular_core.Signal<NzInputAddonBeforeDirective | undefined>;
    protected addonAfter: _angular_core.Signal<NzInputAddonAfterDirective | undefined>;
    protected hasAffix: _angular_core.Signal<boolean>;
    protected hasAddon: _angular_core.Signal<boolean>;
    protected class: _angular_core.Signal<{
        'ant-input-number-group-wrapper': boolean;
        'ant-input-number-group-wrapper-rtl': boolean;
    } | {
        'ant-input-number-affix-wrapper': boolean;
        'ant-input-number-affix-wrapper-disabled': boolean;
        'ant-input-number-affix-wrapper-readonly': boolean;
        'ant-input-number-affix-wrapper-focused': boolean;
        'ant-input-number-affix-wrapper-rtl': boolean;
    } | {
        'ant-input-number': boolean;
        'ant-input-number-lg': boolean;
        'ant-input-number-sm': boolean;
        'ant-input-number-disabled': boolean;
        'ant-input-number-readonly': boolean;
        'ant-input-number-focused': boolean;
        'ant-input-number-rtl': boolean;
        'ant-input-number-in-form-item': boolean;
        'ant-input-number-out-of-range': boolean;
    }>;
    protected inputNumberClass: _angular_core.Signal<{
        'ant-input-number': boolean;
        'ant-input-number-lg': boolean;
        'ant-input-number-sm': boolean;
        'ant-input-number-disabled': boolean;
        'ant-input-number-readonly': boolean;
        'ant-input-number-focused': boolean;
        'ant-input-number-rtl': boolean;
        'ant-input-number-in-form-item': boolean;
        'ant-input-number-out-of-range': boolean;
    }>;
    protected affixWrapperClass: _angular_core.Signal<{
        'ant-input-number-affix-wrapper': boolean;
        'ant-input-number-affix-wrapper-disabled': boolean;
        'ant-input-number-affix-wrapper-readonly': boolean;
        'ant-input-number-affix-wrapper-focused': boolean;
        'ant-input-number-affix-wrapper-rtl': boolean;
    }>;
    protected groupWrapperClass: _angular_core.Signal<{
        'ant-input-number-group-wrapper': boolean;
        'ant-input-number-group-wrapper-rtl': boolean;
    }>;
    protected finalSize: _angular_core.Signal<NzSizeLDSType>;
    protected upDisabled: _angular_core.Signal<boolean>;
    protected downDisabled: _angular_core.Signal<boolean>;
    constructor();
    ngOnInit(): void;
    writeValue(value: number | null | undefined): void;
    registerOnChange(fn: OnChangeType): void;
    registerOnTouched(fn: OnTouchedType): void;
    setDisabledState(disabled: boolean): void;
    focus(): void;
    blur(): void;
    private step;
    private setValue;
    private setValueByTyping;
    private updateValue;
    private fixValue;
    protected stopAutoStep(): void;
    protected onStepMouseDown(event: MouseEvent | KeyboardEvent, up: boolean): void;
    protected onKeyDown(event: KeyboardEvent): void;
    protected onInput(value: string): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzInputNumberComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<NzInputNumberComponent, "nz-input-number", ["nzInputNumber"], { "nzId": { "alias": "nzId"; "required": false; "isSignal": true; }; "nzSize": { "alias": "nzSize"; "required": false; "isSignal": true; }; "nzPlaceHolder": { "alias": "nzPlaceHolder"; "required": false; "isSignal": true; }; "nzStatus": { "alias": "nzStatus"; "required": false; "isSignal": true; }; "nzVariant": { "alias": "nzVariant"; "required": false; "isSignal": true; }; "nzStep": { "alias": "nzStep"; "required": false; "isSignal": true; }; "nzMin": { "alias": "nzMin"; "required": false; "isSignal": true; }; "nzMax": { "alias": "nzMax"; "required": false; "isSignal": true; }; "nzPrecision": { "alias": "nzPrecision"; "required": false; "isSignal": true; }; "nzParser": { "alias": "nzParser"; "required": false; "isSignal": true; }; "nzFormatter": { "alias": "nzFormatter"; "required": false; "isSignal": true; }; "nzDisabled": { "alias": "nzDisabled"; "required": false; "isSignal": true; }; "nzReadOnly": { "alias": "nzReadOnly"; "required": false; "isSignal": true; }; "nzAutoFocus": { "alias": "nzAutoFocus"; "required": false; "isSignal": true; }; "nzBordered": { "alias": "nzBordered"; "required": false; "isSignal": true; }; "nzKeyboard": { "alias": "nzKeyboard"; "required": false; "isSignal": true; }; "nzControls": { "alias": "nzControls"; "required": false; "isSignal": true; }; }, { "nzBlur": "nzBlur"; "nzFocus": "nzFocus"; "nzOnStep": "nzOnStep"; }, ["prefix", "suffix", "addonBefore", "addonAfter"], ["[nzInputAddonBefore]", "[nzInputAddonAfter]", "[nzInputPrefix]", "[nzInputSuffix]", "[nzInputNumberUpIcon]", "[nzInputNumberDownIcon]"], true, [{ directive: typeof i1.NzSpaceCompactItemDirective; inputs: {}; outputs: {}; }]>;
}

declare class NzInputNumberModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzInputNumberModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NzInputNumberModule, never, [typeof NzInputNumberComponent, typeof i2.NzInputAddonBeforeDirective, typeof i2.NzInputAddonAfterDirective, typeof i2.NzInputPrefixDirective, typeof i2.NzInputSuffixDirective], [typeof NzInputNumberComponent, typeof i2.NzInputAddonBeforeDirective, typeof i2.NzInputAddonAfterDirective, typeof i2.NzInputPrefixDirective, typeof i2.NzInputSuffixDirective]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<NzInputNumberModule>;
}

export { NzInputNumberComponent, NzInputNumberModule };
