import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
import * as _angular_core from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { SiFormItemControl } from '@siemens/element-ng/form';

declare class SiSliderComponent implements ControlValueAccessor, SiFormItemControl {
    private static idCounter;
    private readonly handleRef;
    private readonly disabledNgControl;
    /**
     * @defaultValue
     * ```
     * `__si-slider-${SiSliderComponent.idCounter++}`
     * ```
     */
    readonly id: _angular_core.InputSignal<string>;
    /**
     * Current value of slider.
     */
    readonly value: _angular_core.ModelSignal<number | undefined>;
    /**
     * Minimum of slider range.
     *
     * @defaultValue 0
     */
    readonly min: _angular_core.InputSignalWithTransform<number, unknown>;
    /**
     * Maximum of slider range.
     *
     * @defaultValue 100
     */
    readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
    /**
     * Label to describe minimum of slider range.
     *
     * @defaultValue ''
     */
    readonly minLabel: _angular_core.InputSignal<string>;
    /**
     * Label to describe maximum of slider range.
     *
     * @defaultValue ''
     */
    readonly maxLabel: _angular_core.InputSignal<string>;
    /**
     * Interval to step through the slider.
     *
     * @defaultValue 1
     */
    readonly step: _angular_core.InputSignalWithTransform<number, unknown>;
    /**
     * Icon to use as the slider thumb.
     */
    readonly thumbIcon: _angular_core.InputSignal<string | undefined>;
    /**
     * Text for aria-label of increment. Needed for a11y.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_SLIDER.INCREMENT:Increment`)
     * ```
     */
    readonly incrementLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * Text for aria-label of decrement. Needed for a11y.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_SLIDER.DECREMENT:Decrement`)
     * ```
     */
    readonly decrementLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * Text for aria-label of slider. Needed for a11y
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_SLIDER.LABEL:Value`)
     * ```
     */
    readonly sliderLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * @defaultValue
     * ```
     * `${this.id()}-label`
     * ```
     */
    readonly labelledby: _angular_core.InputSignal<string>;
    /** @defaultValue false */
    readonly disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
    protected readonly disabled: _angular_core.Signal<boolean>;
    protected readonly sliderValue: _angular_core.Signal<number>;
    /**
     * This ID will be bound to the `aria-describedby` attribute of the slider.
     * Use this to reference the element containing the error message(s) for the slider.
     * It will be picked by the {@link SiFormItemComponent} if the slider is used inside a form item.
     *
     * @defaultValue
     * ```
     * `${this.id()}-errormessage`
     * ```
     */
    readonly errormessageId: _angular_core.InputSignal<string>;
    protected readonly indicatorPos: _angular_core.Signal<number>;
    protected readonly icons: Record<"elementMinus" | "elementPlus", string>;
    protected isDragging: boolean;
    private autoUpdate$;
    private autoUpdateSubs?;
    private rtl;
    private unlistenDragEvents;
    private onTouchedCallback;
    private onChangeCallback;
    private zone;
    private changeDetectorRef;
    private incrementValue;
    private decrementValue;
    private roundToStepPrecision;
    private normalizeValue;
    private handleTouchMove;
    private handleMouseMove;
    private handleDragMove;
    private handleDragEnd;
    private valueChanged;
    protected handlePointerDown(event: Event): void;
    protected autoUpdateKeydown(event: KeyboardEvent): void;
    protected autoUpdateStart(event: Event, isIncrement: boolean): void;
    protected autoUpdateStop(): void;
    protected handleMouseDown(event: MouseEvent): void;
    protected handleTouchStart(event: TouchEvent): void;
    /** @internal */
    writeValue(val: any): void;
    /** @internal */
    registerOnChange(fn: any): void;
    /** @internal */
    registerOnTouched(fn: () => void): void;
    /** @internal */
    setDisabledState(isDisabled: boolean): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSliderComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSliderComponent, "si-slider", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minLabel": { "alias": "minLabel"; "required": false; "isSignal": true; }; "maxLabel": { "alias": "maxLabel"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "thumbIcon": { "alias": "thumbIcon"; "required": false; "isSignal": true; }; "incrementLabel": { "alias": "incrementLabel"; "required": false; "isSignal": true; }; "decrementLabel": { "alias": "decrementLabel"; "required": false; "isSignal": true; }; "sliderLabel": { "alias": "sliderLabel"; "required": false; "isSignal": true; }; "labelledby": { "alias": "labelledby"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "errormessageId": { "alias": "errormessageId"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, ["*"], true, never>;
}

declare class SiSliderModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSliderModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiSliderModule, never, [typeof SiSliderComponent], [typeof SiSliderComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiSliderModule>;
}

export { SiSliderComponent, SiSliderModule };
