import { BindingEventService } from '@slickgrid-universal/binding';
import { type SlickGrid } from '../core/index.js';
import type { Column, ColumnEditor, CompositeEditorOption, CurrentSliderOption, Editor, EditorArguments, EditorValidationResult, EditorValidator, GridOption, SliderOption, ValidateOption } from '../interfaces/index.js';
export declare class SliderEditor implements Editor {
    protected readonly args: EditorArguments;
    protected _bindEventService: BindingEventService;
    protected _defaultValue: number;
    protected _isValueTouched: boolean;
    protected _originalValue?: number | string;
    protected _cellContainerElm: HTMLElement;
    protected _editorElm: HTMLDivElement;
    protected _inputElm: HTMLInputElement;
    protected _sliderOptions: CurrentSliderOption;
    protected _sliderTrackElm: HTMLDivElement;
    protected _sliderNumberElm: HTMLSpanElement | null;
    /** is the Editor disabled? */
    disabled: boolean;
    /** SlickGrid Grid object */
    grid: SlickGrid;
    /** Grid options */
    gridOptions: GridOption;
    constructor(args: EditorArguments);
    /** Get Column Definition object */
    get columnDef(): Column;
    /** Get Column Editor object */
    get columnEditor(): ColumnEditor;
    /** Getter for the item data context object */
    get dataContext(): any;
    /** Getter for the Editor DOM Element */
    get editorDomElement(): HTMLDivElement;
    /** Getter for the Editor Input DOM Element */
    get editorInputDomElement(): HTMLInputElement;
    get editorOptions(): SliderOption;
    get hasAutoCommitEdit(): boolean;
    /** Getter for the current Slider Options */
    get sliderOptions(): CurrentSliderOption | undefined;
    /** Get the Validator function, can be passed in Editor property or Column Definition */
    get validator(): EditorValidator | undefined;
    init(): void;
    cancel(): void;
    destroy(): void;
    disable(isDisabled?: boolean): void;
    focus(): void;
    show(): void;
    getValue(): string;
    setValue(value: number | string, isApplyingValue?: boolean, triggerOnCompositeEditorChange?: boolean): void;
    applyValue(item: any, state: any): void;
    /**
     * Dynamically change an Editor option, this is especially useful with Composite Editor
     * since this is the only way to change option after the Editor is created (for example dynamically change "minDate" or another Editor)
     * @param {string} optionName - Slider editor option name
     * @param {newValue} newValue - Slider editor new option value
     */
    changeEditorOption<T extends keyof Required<CurrentSliderOption & SliderOption>, K extends Required<CurrentSliderOption & SliderOption>[T]>(optionName: T, newValue: K): void;
    isValueChanged(): boolean;
    isValueTouched(): boolean;
    loadValue(item: any): void;
    /**
     * You can reset or clear the input value,
     * when no value is provided it will use the original value to reset (could be useful with Composite Editor Modal with edit/clone)
     */
    reset(value?: number | string, triggerCompositeEventWhenExist?: boolean, clearByDisableCommand?: boolean): void;
    save(): void;
    serializeValue(): string | number | undefined;
    validate(_targetElm?: any, options?: ValidateOption): EditorValidationResult;
    /**
     * Create the HTML template as a string
     */
    protected buildDomElement(): HTMLDivElement;
    /** get default slider defaults */
    protected getSliderConfigs(): Omit<CurrentSliderOption, 'sliderTrackBackground'>;
    protected renderSliderNumber(divContainerElm: HTMLDivElement, defaultValue: number | string): void;
    /** when it's a Composite Editor, we'll check if the Editor is editable (by checking onBeforeEditCell) and if not Editable we'll disable the Editor */
    protected applyInputUsabilityState(): void;
    protected handleChangeEvent(event: MouseEvent): void;
    protected handleChangeSliderNumber(event: Event): void;
    protected handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption, triggeredBy?: 'user' | 'system', isCalledByClearValue?: boolean): void;
    /** use keydown event to increase/decrease slider value */
    protected handleKeyDown(e: KeyboardEvent): void;
    protected sliderTrackClicked(e: MouseEvent): void;
    protected updateTrackFilledColorWhenEnabled(): void;
}
//# sourceMappingURL=sliderEditor.d.ts.map