import { EventEmitter } from '../../stencil-public-runtime';
import { HTMLStencilElement } from '../../stencil-public-runtime';
import { BalAriaForm, BalAriaFormLinking } from '../../utils/form';
export declare class InputSlider implements BalAriaFormLinking {
    el: HTMLStencilElement;
    private inputId;
    private nativeInput?;
    private didInit;
    private hasFocus;
    private initialValue?;
    ariaForm: BalAriaForm;
    /**
     * The name of the control, which is submitted with the form data.
     */
    name: string;
    /**
     * The step size. 0 means no steps.
     */
    step: number;
    /**
     * Min value of the model.
     */
    min: number;
    /**
     * Max value of the model.
     */
    max: number;
    /**
     * If `true` the component gets a invalid style.
     */
    invalid: boolean;
    /**
     * The tabindex of the control.
     */
    balTabindex: number;
    /**
     * If `true`, the element is not mutable, focusable, or even submitted with the form. The user can neither edit nor focus on the control, nor its form control descendants.
     */
    disabled: boolean;
    /**
     * If `true` the element can not mutated, meaning the user can not edit the control.
     */
    readonly: boolean;
    /**
     * If `true`, the user must fill in a value before submitting a form.
     */
    required: boolean;
    /**
     * If `true`, small ticks for the steps are shown.
     */
    hasTicks: boolean;
    /**
     * Set the amount of time, in milliseconds, to wait to trigger the `balChange` event after each keystroke. This also impacts form bindings such as `ngModel` or `v-model`.
     */
    debounce: number;
    protected debounceChanged(): void;
    /**
     * The value of the input.
     */
    value?: string | number;
    /**
     * If `true`, in Angular reactive forms the control will not be set invalid
     */
    autoInvalidOff: boolean;
    /**
     * Emitted when a keyboard input occurred.
     */
    balInput: EventEmitter<BalEvents.BalInputSliderInputDetail>;
    /**
     * Emitted when a keyboard input occurred.
     */
    balBlur: EventEmitter<BalEvents.BalInputSliderBlurDetail>;
    /**
     * Emitted when a keyboard key has pressed.
     */
    balKeyPress: EventEmitter<BalEvents.BalInputSliderKeyPressDetail>;
    /**
     * Emitted when the input has focus.
     */
    balFocus: EventEmitter<BalEvents.BalInputSliderFocusDetail>;
    /**
     * Emitted when the input value has changed.
     */
    balChange: EventEmitter<BalEvents.BalInputSliderChangeDetail>;
    listenOnClick(ev: UIEvent): void;
    private resetHandlerTimer?;
    resetHandler(ev: UIEvent): void;
    /**
     * Update the native input element when the value changes
     */
    protected valueChanged(newValue: string | number | undefined, oldValue: string | number | undefined): void;
    connectedCallback(): void;
    componentDidLoad(): void;
    private setFocusTimer?;
    /**
     * Sets focus on the native `input` in `bal-input`. Use this method instead of the global
     * `input.focus()`.
     */
    setFocus(): Promise<void>;
    /**
     * Returns the native `<input>` element used under the hood.
     */
    getInputElement(): Promise<HTMLInputElement | undefined>;
    /**
     * @internal
     */
    setAriaForm(ariaForm: BalAriaForm): Promise<void>;
    get numberOfSteps(): number;
    private cssWidth;
    private onInput;
    private handleClick;
    private onFocus;
    private onBlur;
    private getNumberOfSteps;
    render(): any;
}
