import { ElementRef } from '@angular/core'; import { Platform } from '@angular/cdk/platform'; import { Observable, Subject } from 'rxjs'; import { NgScrollbar } from '../ng-scrollbar'; import { EventTargetLike } from 'rxjs/internal-compatibility'; export declare abstract class ScrollbarRef { protected scrollbarRef: NgScrollbar; protected document: any; protected destroyed: Subject; protected eventContext: EventTargetLike; protected readonly viewElement: HTMLElement; protected readonly trackElement: HTMLElement; protected readonly thumbElement: HTMLElement; protected readonly hoveredState: Subject; protected readonly draggingState: Subject; protected readonly pointerEvents: Subject; protected abstract readonly scrollSize: number; protected abstract readonly viewportSize: number; protected abstract readonly trackSize: number; protected abstract readonly thumbSize: number; protected abstract readonly scrollOffset: number; protected abstract readonly dragStartOffset: number; protected abstract readonly dragOffset: number; protected abstract readonly pageProperty: string; protected abstract readonly clientProperty: string; protected readonly scrollMax: number; protected readonly trackMax: number; protected constructor(scrollbarRef: NgScrollbar, document: any, trackRef: ElementRef, thumbRef: ElementRef, platform: Platform, destroyed: Subject, eventContext: EventTargetLike); /** * Updates scrollbar's thumb position and size */ protected updateThumb(): void; dragged(event: any): Observable; /** * Stream that emits when a scrollbar is hovered */ private hovered; /** * Stream that emits when scrollbar track is clicked */ protected trackClicked(e: any): Observable; /** * Stream that emits when view is scrolled */ protected abstract scrolled(): Observable; /** * Return a scrollTo option parameter */ protected abstract mapToScrollToOption(value: number): ScrollToOptions; /** * Updates scrollbar's thumb size and position */ protected abstract applyThumbStyle(size: number, position: number, trackMax?: number): void; /** * On drag function */ protected abstract handleDragPosition(position: number, scrollMax: number): number; protected abstract scrollTo(point: number): void; protected abstract setDragging(value: boolean): void; protected abstract setHovered(value: boolean): void; }