import { EventEmitter, ChangeDetectorRef, Renderer2 } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
/**
 * Spinner Input Component
 */
export declare class SpinnerComponent implements ControlValueAccessor {
    private _cd;
    private _render;
    /**
     * the event emitted when input value changes
     */
    change: EventEmitter<number>;
    /**
     * Spinner value
     * @default 0
     */
    value: number;
    /**
     * Spinner step value, default to 1
     * @default 1
     */
    step: number;
    /**
     * Spinner max value
     */
    minValue: number;
    /**
     * Spinner min value
     */
    maxValue: number;
    /**
     * Whether the spinner is disabled
     * @default false
     */
    disabled: boolean;
    constructor(_cd: ChangeDetectorRef, _render: Renderer2);
    /**
     * add a step value
     * @docs-private
     */
    up(): void;
    /**
     * subtract a step value
     * @docs-private
     */
    down(): void;
    /**
     * check input value
     *
     * @param {string} value - current underlying input value
     * @param {HTMLInputElement} input - underlying input
     * @docs-private
     */
    onInputCheck(value: string, input: HTMLInputElement): void;
    /**
     * Whether the spinner has set max value
     * @docs-private
     */
    hasMaxValue(): boolean;
    /**
     * Whether the spinner has set min value
     * @docs-private
     */
    hasMinValue(): boolean;
    /**
     * use keyboard up and down arrow
     * @docs-private
     */
    onInputKeyup(keyCode: number): void;
    /**
     * The method to be called in order to update ngModel.
     * Now `ngModel` binding is not supported in multiple selection mode.
     */
    private _onModelChange;
    /**
     * Registers a callback that will be triggered when the value has changed.
     * Implemented as part of ControlValueAccessor.
     * @param fn On change callback function.
     */
    registerOnChange(fn: Function): void;
    /** onTouch function registered via registerOnTouch (ControlValueAccessor). */
    private _onTouch;
    /**
     * Registers a callback that will be triggered when the control has been touched.
     * Implemented as part of ControlValueAccessor.
     * @param fn On touch callback function.
     */
    registerOnTouched(fn: Function): void;
    /**
     * Sets the model value. Implemented as part of ControlValueAccessor.
     * @param {any} value - value to be set to the model.
     */
    writeValue(value: any): void;
    /**
     * Toggles the disabled state of the component. Implemented as part of ControlValueAccessor.
     * @param {boolean} isDisabled - Whether the component should be disabled.
     */
    setDisabledState(isDisabled: boolean): void;
    /**
     * update form model value and mark for check
     * @docs-private
     */
    _markForCheck(): void;
}
