import { EventEmitter } from '../../stencil-public-runtime';
/**
* @slot leading-input - Content to be placed before the input text, within the input container.
* @slot trailing-input - Content to be placed after the input text, within the input container.
* @slot before-input - Content to be placed before the input text, outside the input container.
* @slot after-input - Content to be placed after the input text, outside the input container.
* @slot label - Content to be placed as the label, will override the label prop.
* @slot description - Content to be placed as the description, will override the description prop.
* @slot error-description - Content to be placed as the error description, will override the errorDescription prop.
*/
export declare class NvFieldnumber {
el: HTMLNvFieldnumberElement;
private inputElement;
/****************************************************************************/
/**
* Message defines a 'hint ' message for the number field.
* @deprecated Use `description` instead.
*/
readonly message: string;
/**
* Add the message to the validation state.
* @deprecated Use `errorDescription` and set the error prop instead.
*/
readonly validation: string;
/****************************************************************************/
/**
* Sets the ID for the input element and the for attribute of the associated
* label. If no ID is provided, a random one will be automatically generated
* to ensure unique identification, facilitating proper label association and
* accessibility.
*/
readonly inputId: string;
/**
* Lets you define the text that explains what users should enter in the text
* input field. It’s a crucial element for making forms clear and
* user-friendly.
*/
readonly label: string;
/**
* Add helpful hints or extra information under the text input field. This is
* where you can clarify what users should enter or provide additional
* instructions, making the form easier to fill out correctly.
*/
description: string;
/**
* Display temporary text inside the input field to give users a hint about
* what to type. It’s a great way to provide examples or suggestions directly
* in the field before they start typing.
*/
readonly placeholder: string;
/**
* Defines the name attribute of the input field, which is crucial for form
* submission. This value is used as the key in the key-value pair sent to
* the server, representing the input’s data in form submissions. It should be
* unique within the form to avoid conflicts
*/
readonly name: string;
/**
* The disabled prop lets you turn off the input field so that users can’t
* type in it. When disabled, the field is grayed out and won’t respond to#
* clicks or touches.
*/
readonly disabled: boolean;
/**
* Display the input field’s content without allowing users to change it.
* Users can still click on it, select, and copy the text, but they won’t be
* able to type or delete anything.
*/
readonly readonly: boolean;
/**
* Marks the input field as required, ensuring that the user must fill it out
* before submitting the form.
* @note This uses the native HTML `required` attribute, which triggers browser validation.
*/
readonly required: boolean;
/**
* Marks the input field as required for accessibility purposes without triggering
* native HTML validation. Use this when implementing custom validation logic.
* @note When set, this uses `aria-required` instead of the native `required` attribute.
* This allows developers to implement custom validation while maintaining accessibility.
* @note If this prop is not explicitly set, the component will check for the HTML attribute
* 'aria-required' directly to determine if it should be applied.
*/
readonly ariaRequiredAttr: boolean;
/**
* Alters the input field's appearance to indicate an error, helping users
* identify fields that need correction.
* @validator error
*/
error: boolean;
/**
* Show a helpful message under the input field when there’s a problem. It
* explains what’s wrong and how users can fix it, making the error easier to
* understand and resolve.
* @validator message
*/
errorDescription: string;
/**
* Changes the input field’s appearance to indicate successful input or
* validation.
*/
readonly success: boolean;
/**
* The maximum value that the input field can accept. Use this in combination
* with min to create a range of valid values.
*/
readonly max: number;
/**
* The minimum value that the input field can accept. Use this in combination
* with max to create a range of valid values.
*/
readonly min: number;
/**
* Define the increment value for the input field. It determines how much the
* value will increase or decrease when the user clicks the stepper buttons.
*/
readonly step: number;
/**
* The value of the input field. It’s the text that users type in or the value
* that you set programmatically. This is the main way to interact with the
* input field, and it’s essential for creating forms that users can fill out.
*/
value: number | null;
/**
* Applies focus to the input field as soon as the component is mounted. This
* is equivalent to setting the native autofocus attribute on an
* element.
*/
readonly autofocus: boolean;
/**
* Allows the field to stretch and fill the entire width of its container.
*/
readonly fluid: boolean;
/****************************************************************************/
/**
* Emitted when the input value changes.
* @bind value
*/
valueChanged: EventEmitter;
/**
* Tracks the last emitted value to avoid double firing for normalized nulls.
*/
private lastEmittedValue?;
/****************************************************************************/
watchValueHandler(newValue: number | null | undefined): void;
/****************************************************************************/
private handleInput;
private handleInputContainerClick;
private handlePlus;
private handleMinus;
private preventSelection;
private isMinValueReached;
private isMaxValueReached;
/****************************************************************************/
componentWillRender(): void;
/****************************************************************************/
render(): any;
}