import { JBInputWebComponent } from "jb-input";
import { EventTypeWithTarget } from "jb-core";

//#region modules/jb-number-input/web-component/lib/types.d.ts
type NumberFieldParameter = {
  decimalPrecision: number | null;
  acceptNegative: boolean;
  maxValue: number | null;
  minValue: number | null;
};
type TypeParameter = {
  useThousandSeparator: boolean;
  invalidNumberReplacement: string;
  thousandSeparator: string;
  showPersianNumber: boolean;
};
type NumberFieldParameterInput = Partial<NumberFieldParameter>;
type NumberInputElements = {
  controlButtons: HTMLDivElement | null;
};
type JBNumberInputEventType<TEvent> = EventTypeWithTarget<TEvent, JBNumberInputWebComponent>;
//#endregion
//#region modules/jb-number-input/web-component/lib/jb-number-input.d.ts
declare class JBNumberInputWebComponent extends JBInputWebComponent {
  #private;
  get minValue(): number | string | null;
  set minValue(value: number | string | null);
  get maxValue(): number | string | null;
  set maxValue(value: number | string | null);
  get decimalPrecision(): number | string | null;
  set decimalPrecision(value: number | string | null);
  get acceptNegative(): boolean;
  set acceptNegative(value: boolean);
  get step(): number | null;
  set step(value: number);
  get showThousandSeparator(): boolean;
  set showThousandSeparator(value: boolean);
  get thousandSeparator(): string;
  set thousandSeparator(value: string);
  get showPersianNumber(): boolean;
  set showPersianNumber(value: boolean);
  get invalidNumberReplacement(): string;
  set invalidNumberReplacement(value: string);
  numberInputElements: NumberInputElements;
  get showControlButton(): boolean;
  set showControlButton(value: boolean);
  constructor();
  static get numberInputObservedAttributes(): string[];
  static get observedAttributes(): string[];
  attributeChangedCallback(name: string, _oldValue: string, newValue: string): void;
  increaseNumber(shouldCallOnChange?: boolean): void;
  decreaseNumber(shouldCallOnChange?: boolean): void;
}
//#endregion
export { JBNumberInputEventType, JBNumberInputWebComponent, NumberFieldParameter, NumberFieldParameterInput, NumberInputElements, TypeParameter };
//# sourceMappingURL=jb-number-input.d.ts.map