import { LuxenElement } from '../../shared/luxen-element.js';
export type InputStepperSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
/** Fired when the stepper value changes. Bubbles; not composed. */
export declare class StepperChangeEvent extends Event {
readonly value: number;
constructor(value: number);
}
interface InputStepperEventMap {
change: StepperChangeEvent;
}
/**
* A stepper control that enhances a native `` with
* decrement/increment buttons and an optional animated number track.
*
* @link https://www.nngroup.com/articles/input-steppers/
*
* @example
* ```html
*
*
*
* ```
*
* @event change - Fired when the value changes. Bubbles. Properties: `value: number`.
*
* @cssproperty --border-color - Border color of the stepper container (default appearance) and of each button (rounded appearance). Defaults to `--l-color-border`.
* @cssproperty --border-radius - Border radius of the stepper container (default appearance). Defaults to `--radius-md`.
*
* @customElement l-input-stepper
*/
export declare class InputStepper extends LuxenElement {
private _localize;
createRenderRoot(): this;
/** Minimum allowed value. Falls back to the input's `min` attribute. */
min?: number;
/** Maximum allowed value. Falls back to the input's `max` attribute. */
max?: number;
/** Step increment. Falls back to the input's `step` attribute. */
step?: number;
/** Control size. */
size: InputStepperSize;
/** Enable the animated number roller overlay. */
withRoller: boolean;
/** Icon name for the decrement button. */
decrementIcon: string;
/** Icon name for the increment button. */
incrementIcon: string;
private _initialized;
private _setupTimer;
private _input;
private _decrementBtn;
private _incrementBtn;
private _valueWrapper;
private _trackDisplay;
private _track;
private _observer;
private _skipTransition;
connectedCallback(): void;
disconnectedCallback(): void;
/** @returns true when setup ran or was already done; false to schedule a retry. */
private _trySetup;
updated(changed: Map): void;
/** Decrease the value by one step. */
decrement(): void;
/** Increase the value by one step. */
increment(): void;
private _setup;
private _teardown;
private _createButton;
private _buildTrack;
private _rebuildTrackNumbers;
private _getConstraints;
private _syncConstraints;
private _applyValue;
private _updateTrack;
private _updateButtonStates;
private _onDecrement;
private _onIncrement;
private _onInputChange;
}
export interface InputStepper {
addEventListener(type: K, listener: (this: InputStepper, ev: InputStepperEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: InputStepper, ev: InputStepperEventMap[K]) => void, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
export {};
//# sourceMappingURL=input-stepper.d.ts.map