import { FocusMonitor } from '@angular/cdk/a11y';
import { CdkOverlayOrigin } from '@angular/cdk/overlay';
import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { NtOverlayComponent } from '@ng-tangram/components/overlay';
import { NtFormFieldControl } from '@ng-tangram/components/forms';
export declare class NtSliderChange {
    value: number;
    source: NtSliderComponent;
}
interface NtSliderStepmark {
    value: number;
    percent: number;
}
export declare class NtSliderComponent extends NtFormFieldControl<number> implements ControlValueAccessor, OnInit, OnDestroy {
    private _changeDetectorRef;
    private _elementRef;
    private _focusMonitor;
    ngControl: NgControl;
    private _ngZone;
    tabIndex: number;
    private _min;
    get min(): number;
    set min(value: number);
    private _max;
    get max(): number;
    set max(value: number);
    private _step;
    get step(): number;
    set step(value: number);
    private _value;
    get value(): number | null;
    set value(value: number | null);
    private _percent;
    get percent(): number;
    get displayValue(): string | number;
    private _disabled;
    get disabled(): boolean;
    set disabled(value: boolean);
    private _invert;
    get invert(): boolean;
    set invert(value: boolean);
    private _stepmark;
    get stepmark(): boolean;
    set stepmark(value: boolean);
    private _vertical;
    get vertical(): boolean;
    set vertical(value: boolean);
    readonly change: EventEmitter<NtSliderChange>;
    readonly input: EventEmitter<NtSliderChange>;
    readonly valueChange: EventEmitter<number | null>;
    _sliderHandle: ElementRef;
    _overlay: NtOverlayComponent;
    private _onChange;
    private _onTouched;
    private _sliderDimensions;
    private _roundToDecimal;
    private _valueOnSlideStart;
    private _pointerPositionOnStart;
    private _lastPointerEvent;
    protected _document?: Document;
    _origin: CdkOverlayOrigin;
    _isSliding: boolean;
    _isActive: boolean;
    _stepmarkValues: NtSliderStepmark[];
    get _trackFillStyles(): {
        width: string;
        height?: undefined;
    } | {
        height: string;
        width?: undefined;
    };
    get _trackHandleStyles(): {
        left: string;
        right?: undefined;
        top?: undefined;
    } | {
        right: string;
        left?: undefined;
        top?: undefined;
    } | {
        top: string;
        left?: undefined;
        right?: undefined;
    };
    get _trackTootipPosition(): import("@angular/cdk/overlay").ConnectionPositionPair[];
    constructor(_changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef, _focusMonitor: FocusMonitor, document: any, tabIndex: string, ngControl: NgControl, _ngZone: NgZone);
    ngOnInit(): void;
    ngOnDestroy(): void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    focus(options?: FocusOptions): void;
    blur(): void;
    _onMouseenter(): void;
    _onFocus(): void;
    _onBlur(): void;
    _onKeydown(event: KeyboardEvent): void;
    _onKeyup(): void;
    _shouldInvertMouseCoords(): boolean;
    _trackStepmarkStyles(stepmark: NtSliderStepmark): {
        left: string;
        right?: undefined;
        top?: undefined;
    } | {
        right: string;
        left?: undefined;
        top?: undefined;
    } | {
        top: string;
        left?: undefined;
        right?: undefined;
    };
    private _increment;
    private _getSliderDimensions;
    private _pointerDown;
    private _pointerMove;
    private _pointerUp;
    private _updateValueFromPosition;
    private _calculatePercentage;
    private _calculateValue;
    private _calculateStepmarks;
    private _clamp;
    private _bindGlobalEvents;
    private _removeGlobalEvents;
    private _windowBlur;
    private _focusHostElement;
    private _blurHostElement;
    private _emitChangeEvent;
    private _emitInputEvent;
    private _createSliderChange;
}
export {};
