import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { Platform } from '@angular/cdk/platform';
import { MDCComponent } from '@angular-mdc/web/base';
import { MDCSliderFoundation } from '@material/slider';
export declare const MDC_SLIDER_CONTROL_VALUE_ACCESSOR: any;
export declare class MdcSliderChange {
    source: MdcSlider;
    value: number;
    constructor(source: MdcSlider, value: number);
}
export declare class MdcSlider extends MDCComponent<MDCSliderFoundation> implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {
    private _platform;
    private _ngZone;
    private _changeDetectorRef;
    elementRef: ElementRef;
    /** Emits whenever the component is destroyed. */
    private _destroyed;
    private _initialized;
    _root: Element;
    tabIndex: number;
    get discrete(): boolean;
    set discrete(value: boolean);
    private _discrete;
    get markers(): boolean;
    set markers(value: boolean);
    private _markers;
    get min(): number;
    set min(value: number);
    private _min;
    get max(): number;
    set max(value: number);
    private _max;
    get step(): number;
    set step(value: number);
    private _step;
    get value(): number | null;
    set value(newValue: number | null);
    private _value;
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    readonly change: EventEmitter<MdcSliderChange>;
    readonly input: EventEmitter<MdcSliderChange>;
    /**
     * Emits when the raw value of the slider changes. This is here primarily
     * to facilitate the two-way binding for the `value` input.
     */
    readonly valueChange: EventEmitter<number>;
    thumbContainer: ElementRef<HTMLElement>;
    _sliderThumb: ElementRef<HTMLElement>;
    track: ElementRef<HTMLElement>;
    pinValueMarker?: ElementRef;
    trackMarkerContainer?: ElementRef<HTMLElement>;
    /** Function when touched */
    _onTouched: () => any;
    /** Function when changed */
    _controlValueAccessorChangeFn: (value: number) => void;
    getDefaultFoundation(): MDCSliderFoundation;
    constructor(_platform: Platform, _ngZone: NgZone, _changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef, tabIndex: string);
    ngOnChanges(changes: SimpleChanges): void;
    _asyncInitializeFoundation(): Promise<void>;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(disabled: boolean): void;
    layout(): void;
    private _loadListeners;
    private _syncValueWithFoundation;
    private _syncStepWithFoundation;
    private _syncMinWithFoundation;
    private _syncMaxWithFoundation;
    private _createChangeEvent;
    private _emitChangeEvent;
    /** Keep calculation in css for better rounding/subpixel behavior. */
    private _getTrackMarkersBackground;
    /** Method that ensures that track markers are refreshed. */
    private _refreshTrackMarkers;
}
