import { Component } from 'preact'; export interface AbstractSliderProps { min: number; max: number; step: number; marks: SliderMarks; dots: boolean; included: boolean; vertical: boolean; disabled: boolean; className: string; classesPrefix: string; onBeforeChange(value: SliderValue): void; onChange(value: SliderValue): void; onAfterChange(value: SliderValue): void; tipFormatter(value: number): AnyJsxElement; } export declare type AnyJsxElement = string | JSX.Element | Array; export interface SliderMarks { [key: number]: AnyJsxElement; } export declare type SliderValue = number | number[]; export interface AbstractSliderState { } declare abstract class AbstractSlider, TState extends AbstractSliderState> extends Component { static defaultProps: Readonly; dragOffset: number; protected handlesRefs: Element[]; protected sliderRef: Element | undefined; componentWillUnmount(): void; protected renderBase(tracks: AnyJsxElement, handles: AnyJsxElement): JSX.Element; protected saveSlider: (element: Element) => void; protected saveHandle: (component: Component | null, index?: number) => void; protected getSliderStart(): number; protected getSliderLength(): number; protected calcValue(offset: number): number; protected calcValueByPos(position: number): number; protected calcOffset(value: number): number; protected abstract clampAlignValue(value: number, nextProps?: Partial): number; protected abstract onChange(state: Pick): void; protected abstract onStart(position: number): void; protected abstract onMove(position: number): void; protected abstract onEnd(): void; protected abstract getValue(): SliderValue; protected abstract getLowerBound(): number; protected abstract getUpperBound(): number; private onMouseDown; private onTouchStart; private onMouseMove; private onTouchMove; private onEventEnd; private addDocumentMouseEvents(); private addDocumentTouchEvents(); private removeDocumentEvents(); } export { AbstractSlider as default };