/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';
import { IQuantityFieldComponent } from './quantity-field';
export interface IQuantityFieldAdapter extends IBaseAdapter {
    initializeButtons(): void;
    addRootClass(name: string): void;
    removeRootClass(name: string): void;
    inputHasAttribute(name: string): boolean;
    addIncrementButtonSlotListener(listener: () => void): void;
    removeIncrementButtonSlotListener(listener: () => void): void;
    addDecrementButtonSlotListener(listener: (evt: Event) => void): void;
    removeDecrementButtonSlotListener(listener: (evt: Event) => void): void;
    addIncrementEventListener(event: string, callback: (event: Event) => void): void;
    addDecrementEventListener(event: string, callback: (event: Event) => void): void;
    removeIncrementEventListener(event: string, callback: (event: Event) => void): void;
    removeDecrementEventListener(event: string, callback: (event: Event) => void): void;
    addIncrementButtonAttribute(name: string, value?: string): void;
    removeIncrementButtonAttribute(name: string): void;
    addDecrementButtonAttribute(name: string, value?: string): void;
    removeDecrementButtonAttribute(name: string): void;
    addInputDisabledAttributeChangeListener(callback: () => void): void;
    addTextFieldAttribute(name: string, value?: string): void;
    removeTextFieldAttribute(name: string): void;
    removeInputDisabledAttributeChangeListener(): void;
    increment(): void;
    decrement(): void;
}
export declare class QuantityFieldAdapter extends BaseAdapter<IQuantityFieldComponent> implements IQuantityFieldAdapter {
    private _rootElement;
    private _incrementButtonSlot;
    private _decrementButtonSlot;
    private _incrementButton;
    private _decrementButton;
    private _textField;
    private _inputElement;
    private _inputAttributeMutationObserver;
    constructor(component: IQuantityFieldComponent);
    initializeButtons(): void;
    addRootClass(name: string): void;
    removeRootClass(name: string): void;
    inputHasAttribute(name: string): boolean;
    addIncrementButtonSlotListener(listener: () => void): void;
    removeIncrementButtonSlotListener(listener: () => void): void;
    addDecrementButtonSlotListener(listener: (evt: Event) => void): void;
    removeDecrementButtonSlotListener(listener: (evt: Event) => void): void;
    addTextFieldAttribute(name: string, value?: string): void;
    removeTextFieldAttribute(name: string): void;
    addIncrementEventListener(event: string, callback: (event: Event) => void): void;
    removeIncrementEventListener(event: string, callback: (event: Event) => void): void;
    addDecrementEventListener(event: string, callback: (event: Event) => void): void;
    removeDecrementEventListener(event: string, callback: (event: Event) => void): void;
    addIncrementButtonAttribute(name: string, value?: string): void;
    removeIncrementButtonAttribute(name: string): void;
    addDecrementButtonAttribute(name: string, value?: string): void;
    removeDecrementButtonAttribute(name: string): void;
    increment(): void;
    decrement(): void;
    addInputDisabledAttributeChangeListener(callback: () => void): void;
    removeInputDisabledAttributeChangeListener(): void;
    private _setInputValue;
    private _isNullOrUndefinedOrEmpty;
    private _setupInputDisabledAttributeMutationObserver;
    private _cleanupInputDisabledAttributeMutationObserver;
    private _inputDisabledAttributeMutationCallback;
    private get _incrementButtonElement();
    private get _decrementButtonElement();
    private get _textFieldComponent();
    get inputElement(): HTMLInputElement | null;
    private get _inputStep();
    private get _inputMax();
    private get _inputMin();
    private _calcPrecision;
}
