import type { ComponentSize, ThemeColor, VisualVariant } from '../../types';
import '../../content/icon/icon';
import '../input/input';
export type OreNumberInputEvents = {
change: Event;
input: InputEvent;
};
/** Number Input props */
export type OreNumberInputProps = {
/** Theme color */
color?: ThemeColor;
/** Disable interaction */
disabled?: boolean;
/** Error message */
error?: string;
/** Stretch to full width of container */
fullwidth?: boolean;
/** Helper text */
helper?: string;
/** Visible label */
label?: string;
/** Label placement: 'inset' renders the label inside the control box, 'outside' renders it above */
'label-placement'?: 'inset' | 'outside';
/** Large step (for Page Up/Down, default: 10 × step) */
'large-step'?: number;
/**
* Shows an inline spinner inside the field and forces the control into `disabled` for the
* duration — use while an async validation/submission request is in flight to prevent
* double-submits.
*/
loading?: boolean;
/** Maximum allowed value */
max?: number;
/** Minimum allowed value */
min?: number;
/** Form field name */
name?: string;
/** Placeholder text */
placeholder?: string;
/** Make the input read-only */
readonly?: boolean;
/**
* JS-only callback fired with the inner `` element when it mounts,
* and with `null` when it unmounts.
* Set as a JS property: `bitNumberInput.ref = (el) => { ... }`.
*/
ref?: ((el: HTMLInputElement | null) => void) | null;
/** Border radius */
rounded?: string;
/** Component size */
size?: ComponentSize;
/** Step size for increment/decrement */
step?: number;
/**
* Shows an inline green check icon inside the field to confirm the value has
* passed validation. Ignored while `error` is set — an error always wins.
*/
success?: boolean;
/** Current numeric value */
value?: number;
/** Visual variant */
variant?: VisualVariant;
};
/**
* A numeric spin-button input with +/− controls, min/max clamping, and full keyboard support.
*
* @element ore-number-input
*
* @attr {number} value - Current value
* @attr {number} min - Minimum value
* @attr {number} max - Maximum value
* @attr {number} step - Increment/decrement step (default: 1)
* @attr {number} large-step - Step for Page Up/Down (default: 10)
* @attr {boolean} disabled - Disables the control
* @attr {boolean} readonly - Read-only mode
* @attr {boolean} loading - Show an inline spinner and force the control disabled
* @attr {boolean} success - Show an inline success check icon (suppressed while `error` is set)
* @attr {string} label - Visible label
* @attr {string} name - Form field name
* @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'
* @attr {string} size - 'sm' | 'md' | 'lg'
* @attr {string} placeholder - Input placeholder
*
* @fires input - On every keystroke.
* @fires change - On committed value change.
*
* @slot prefix - Content before the input (e.g. icon)
* @slot suffix - Content after the input (e.g. unit label)
* @slot label - Custom label content
* @slot helper - Custom helper text content
* @slot error - Custom error content
*
* @cssprop --number-input-height - Control height
* @cssprop --number-input-border-color - Border color
* @cssprop --number-input-radius - Border radius
* @cssprop --number-input-bg - Background
* @cssprop --number-input-btn-bg - Spin button background
*
* @part control - Control container.
* @part decrement-btn - Decrement stepper button.
* @part input - Input element.
* @part increment-btn - Increment stepper button.
* @example
* ```html
*
*
*
* ```
*/
export declare const NUMBER_INPUT_TAG: "ore-number-input";
//# sourceMappingURL=number-input.d.ts.map