import{nothing,type PropertyValues,type TemplateResult}from'lit';import{LyraInput,type LyraInputEventMap}from'./input.class.js';import type{LyraAppearance}from'../../../internal/variants.js';import type{LyraFormValidator}from'../form-validator.js'; /** Number-input events, including the native cancelable edit veto exposed by its mapped API. */ export interface LyraNumberInputEventMap extends LyraInputEventMap{beforeinput:InputEvent;} /** * `` — a numeric field with the complete `lr-input` form, validation, and native * editing contract, plus its own increment/decrement stepper pair. * * The steppers replace the browser's built-in spin buttons rather than sitting beside them: * `withoutSpinButtons` therefore defaults to `true` here (it defaults to `false` on ``), * and both properties are independently settable, so `steppers="false" * without-spin-buttons="false"` returns the field to a plain native ``. * * Each stepper drives the inherited `stepUp()`/`stepDown()`, so `min`/`max` clamping and decimal * handling are the platform's. Unlike those silent methods, a stepper *click* is a user edit and * emits the same `input`/`lr-input`/`change`/`lr-change` sequence typing would — but only when the * value actually moved, so clicking at a bound is inert rather than emitting a no-op edit. * * The steppers are deliberately outside the tab order (`tabindex="-1"`), like the native spin * buttons they stand in for: a keyboard user steps the value with ArrowUp/ArrowDown on the field * itself, which the native `` already handles, so making them tab stops would * add two stops per field for no new capability. A click returns focus to the field. * * The component retains the complete shared size sheet inherited conceptually from `lr-input`: * compact tiers grow only enough for the stepper hit targets, while `l` and `xl` retain their * larger control heights. The mirrored `small`, `medium`, and `large` spellings render exactly as * canonical `s`, `m`, and `l`, including row height, padding, and native-input font size. * * Inherited stepUp/stepDown use pending value, step, min, and max properties synchronously * and remain event-silent. Removed label/hint/help-text/error-text content is safely omitted. * * @customElement lr-number-input * @event beforeinput - The internal native input's cancelable `InputEvent`, which bubbles and * composes through the host. Calling `preventDefault()` on the host vetoes the edit. * @slot decrement-icon - Replaces the decrement stepper's built-in chevron. * @slot increment-icon - Replaces the increment stepper's built-in chevron. * @csspart base - Compatibility name for the control row; use `number-input`. * @csspart number-input - The numeric control row. It is the same node as `base` and the inherited * `input-wrapper` part. * @csspart stepper - Shared part on both stepper buttons. * @csspart stepper-increment - The increment button. * @csspart stepper-decrement - The decrement button. * @csspart stepper-up - Lyra compatibility name on `stepper-increment`. * @csspart stepper-down - Lyra compatibility name on `stepper-decrement`. * @cssstate blank - The live value is empty. * @cssstate focused - Focus is within the numeric input. * @status stable * @since 4.0.0 */ export declare class LyraNumberInput extends LyraInput{ /** Public WA-compatible catalog, inherited without narrowing its accepted base-input type. */ static get validators():LyraFormValidator[];static styles:import("lit").CSSResultGroup[];protected get inputWrapperParts():string; /** Renders the increment/decrement pair inside the control row. Set `steppers="false"` for a * bare numeric field. */ steppers:boolean; /** Positive upstream spelling for hiding the stepper pair. The established `steppers` switch * remains supported; either `without-steppers` or `steppers="false"` hides the same controls. */ withoutSteppers:boolean; /** Numeric inputs use the outlined field treatment by default. */ appearance:LyraAppearance; /** Requests a numeric virtual keyboard unless the consumer chooses `decimal`. */ inputMode:string; /** Native step-grid default. */ step:number|'any'|undefined; /** Defaults to `true` here (unlike ``) so the component's own steppers are not shown * alongside the browser's built-in spin buttons. `without-spin-buttons="false"` brings the * native pair back. */ withoutSpinButtons:boolean;constructor();connectedCallback():void;protected updated(changed:PropertyValues):void;private syncMappedStates;private onFocusWithin;private onBlurWithin;private stepFromButton;private onStepUp;private onStepDown;protected renderControls():TemplateResult|typeof nothing;}declare global{interface HTMLElementTagNameMap{'lr-number-input':LyraNumberInput;}}