import BaseComponent from '../BaseComponent';
import { Position } from '../../utilities/positioning';
import { ISpinButtonProps } from './SpinButton.types';
import { CreateElement } from 'vue';
export declare enum KeyboardSpinDirection {
    down = -1,
    notSpinning = 0,
    up = 1
}
export interface ISpinButtonState {
    /**
     * Is true when the control has focus.
     */
    isFocused: boolean;
    /**
     * the value of the spin button
     */
    value: string;
    /**
     * keyboard spin direction, used to style the up or down button
     * as active when up/down arrow is pressed
     */
    keyboardSpinDirection: KeyboardSpinDirection;
}
export declare class SpinButtonBase extends BaseComponent<ISpinButtonProps> {
    disabled: boolean;
    required: boolean;
    defaultValue: number;
    value: number;
    label: string;
    labelPosition: number;
    min: number;
    max: number;
    step: number;
    iconProps: any;
    Position: typeof Position;
    getArrowButtonStyles: (theme: import("@uifabric/styling").ITheme, isUpArrow: boolean, customSpecificArrowStyles?: any) => any;
    customUpArrowButtonStyles: {};
    customDownArrowButtonStyles: {};
    internalValue: number;
    private INITIAL_STEP_DELAY;
    private STEP_DELAY;
    private interval;
    private timeout;
    private isFocused;
    private keyboardSpinDirection;
    get classNames(): any;
    private onValueChanged;
    private updateValue;
    private onIncrement;
    private onDecrement;
    private startSpin;
    get precision(): number;
    private stopSpin;
    render(h: CreateElement): import("vue").VNode;
}
//# sourceMappingURL=SpinButton.base.d.ts.map