/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { AfterViewInit, Renderer2, ElementRef, OnChanges, OnDestroy, NgZone, Injector, SimpleChanges, ChangeDetectorRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { SliderBase } from '../sliders-common/slider-base';
import { SVGIcon } from '@progress/kendo-svg-icons';
import * as i0 from "@angular/core";
/**
 * Represents the [Kendo UI Slider component for Angular](https://www.telerik.com/kendo-angular-ui/components/inputs/slider).
 *
 * @example
 * ```html
 * <kendo-slider [min]="0" [max]="10" [smallStep]="1" [(ngModel)]="value"></kendo-slider>
 * ```
 *
 * @remarks
 * Supported children components are: {@link SliderCustomMessagesComponent}.
 */
export declare class SliderComponent extends SliderBase implements AfterViewInit, ControlValueAccessor, OnChanges, OnDestroy {
    protected localization: LocalizationService;
    protected injector: Injector;
    protected renderer: Renderer2;
    protected ngZone: NgZone;
    protected changeDetector: ChangeDetectorRef;
    protected hostElement: ElementRef;
    /**
     * @hidden
     */
    focusableId: string;
    /**
     * Changes the `title` attribute of the drag handle. Use this property to localize the drag handle title.
     */
    dragHandleTitle: string;
    /**
     * Sets the title of the **Increase** button of the Slider ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/slider/side-buttons#titles)).
     */
    incrementTitle: string;
    /**
     * Determines if the component animates when the value changes.
     * The component does not animate during initial rendering.
     * @default true
     */
    animate: boolean;
    /**
     * Sets the title of the **Decrease** button of the Slider ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/slider/side-buttons#titles)).
     */
    decrementTitle: string;
    /**
     * Shows or hides the arrow side buttons of the Slider ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/slider/side-buttons#hidden-state)).
     * When you set `showButtons` to `false`, the component does not display the buttons.
     * @default true
     */
    showButtons: boolean;
    /**
     * Sets the current value of the Slider when it first appears.
     * Use either `ngModel` or the `value` binding, but not both at the same time.
     * @default 0
     */
    value: number;
    /**
     * @hidden
     */
    set tabIndex(tabIndex: number);
    get tabIndex(): number;
    /**
     * @hidden
     */
    get currentValue(): string;
    /**
     * @hidden
     */
    arrowUpIcon: SVGIcon;
    /**
     * @hidden
     */
    arrowDownIcon: SVGIcon;
    /**
     * @hidden
     */
    arrowLeftIcon: SVGIcon;
    /**
     * @hidden
     */
    arrowRightIcon: SVGIcon;
    draghandle: ElementRef;
    decreaseButton: ElementRef;
    increaseButton: ElementRef;
    private focusChangedProgrammatically;
    private isInvalid;
    constructor(localization: LocalizationService, injector: Injector, renderer: Renderer2, ngZone: NgZone, changeDetector: ChangeDetectorRef, hostElement: ElementRef);
    /**
     * Focuses the Slider.
     */
    focus(): void;
    /**
     * Blurs the Slider.
     */
    blur(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * @hidden
     */
    get incrementMessage(): string;
    /**
     * @hidden
     */
    get decrementMessage(): string;
    /**
     * @hidden
     */
    get dragHandleMessage(): string;
    /**
     * @hidden
     */
    onWrapClick: (args: any) => void;
    /**
     * @hidden
     */
    handleDragPress(args: any): void;
    /**
     * @hidden
     */
    onHandleDrag(args: any): void;
    /**
     * @hidden
     */
    onKeyDown: (e: KeyboardEvent) => void;
    /**
     * @hidden
     */
    onHandleRelease(): void;
    /**
     * @hidden
     */
    writeValue(value: number): void;
    /**
     * @hidden
     */
    registerOnChange(fn: () => any): void;
    /**
     * @hidden
     */
    registerOnTouched(fn: () => any): void;
    /**
     * @hidden
     */
    changeValue(value: number): void;
    /**
     * @hidden
     */
    sizeComponent(animate: boolean): void;
    protected set focused(value: boolean);
    private set dragging(value);
    private setValueChangeInterval;
    private ngChange;
    private ngTouched;
    private decreaseValue;
    private increaseValue;
    private getProps;
    private isSliderInvalid;
    private attachElementEventHandlers;
    private handleBlur;
    get decreaseButtonArrowIcon(): string;
    get increaseButtonArrowIcon(): string;
    get decreaseButtonArrowSVGIcon(): SVGIcon;
    get increaseButtonArrowSVGIcon(): SVGIcon;
    static ɵfac: i0.ɵɵFactoryDeclaration<SliderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SliderComponent, "kendo-slider", ["kendoSlider"], { "focusableId": { "alias": "focusableId"; "required": false; }; "dragHandleTitle": { "alias": "dragHandleTitle"; "required": false; }; "incrementTitle": { "alias": "incrementTitle"; "required": false; }; "animate": { "alias": "animate"; "required": false; }; "decrementTitle": { "alias": "decrementTitle"; "required": false; }; "showButtons": { "alias": "showButtons"; "required": false; }; "value": { "alias": "value"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, never, true, never>;
}
