import { type IFocusableProps } from '../../../Behaviors/Focusable';
import { InputState } from '../../../Types/InputState';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { InputFormatterFn } from './InputFormatterFn';
import type { InputParserFn } from './InputParserFn';
/**
 * Represents the `{@link IInputBaseProps}` interface.
 *
 * @public
 */
export interface IInputBaseProps extends IFocusableProps {
    disabled: boolean;
    state: InputState;
    formatter: InputFormatterFn | null;
    parser: InputParserFn | null;
}
declare const InputBaseElement_base: import("../../../../Index").ControlBehaviorReturn<typeof CustomElement, IFocusableProps>;
/**
 * Input base - The base class for all input elements.
 *
 * @public
 * @abstract
 */
export declare abstract class InputBaseElement extends InputBaseElement_base implements IInputBaseProps {
    private _state;
    private _disabled;
    private _formatter;
    private _parser;
    /**
     * @public
     */
    constructor();
    /**
     * Gets or sets the `disabled` property.
     *
     * @public
     * @attr
     */
    get disabled(): boolean;
    set disabled(value: boolean);
    /**
     * Gets or sets the `state` property.
     *
     * @public
     * @readonly
     * @attr
     */
    get state(): InputState;
    private set state(value);
    /**
     * Gets or sets the `formatter` property.
     *
     * @public
     */
    get formatter(): InputFormatterFn | null;
    set formatter(value: InputFormatterFn | null);
    /**
     * Gets or sets the `parser` property.
     *
     * @public
     */
    get parser(): InputParserFn | null;
    set parser(value: InputParserFn | null);
    /**
     * Resets the value of the element.
     *
     * @public
     */
    reset(): void;
    /**
     * @protected
     */
    protected validate(input: HTMLInputElement | HTMLTextAreaElement): boolean;
    /**
     * @protected
     */
    protected onBlur(_event: FocusEvent): void;
    /**
     * @protected
     */
    protected onInput(_event: InputEvent): void;
    /**
     * @protected
     */
    protected onFocus(_event: FocusEvent): void;
    /**
     * @private
     */
    private invalidate;
    /**
     * @private
     */
    private hasValidators;
    /**
     * @private
     */
    private tryGetInput;
}
export {};
//# sourceMappingURL=InputBase.d.ts.map