import { ILenisScrollToOptions, ILocomotiveScrollOptions, lenisTargetScrollTo } from './types'; /** * Locomotive Scroll * * Detection of elements in viewport & smooth scrolling with parallax. * * Inspired by * {@link https://github.com/locomotivemtl/locomotive-scroll locomotive-scroll.js} * and built around * {@link https://github.com/studio-freight/lenis lenis.js}. */ export default class LocomotiveScroll { rafPlaying: boolean; private lenisInstance; private coreInstance; private lenisOptions; private modularInstance?; private triggerRootMargin?; private rafRootMargin?; private rafInstance?; private autoResize?; private autoStart?; private ROInstance?; private scrollCallback; private initCustomTicker?; private destroyCustomTicker?; private _onRenderBind; private _onResizeBind; private _onScrollToBind; constructor({ lenisOptions, modularInstance, triggerRootMargin, rafRootMargin, autoResize, autoStart, scrollCallback, initCustomTicker, destroyCustomTicker, }?: ILocomotiveScrollOptions); /** * Lifecyle - Initialize instance. * * @private */ private _init; /** * Lifecyle - Destroy instance. */ destroy(): void; /** * Events - Subscribe events to listen. */ private _bindEvents; /** * Events - Unsubscribe listened events. */ private _unbindEvents; /** * Events - Subscribe scrollTo events to listen. */ private _bindScrollToEvents; /** * Events - Unsubscribe scrollTo listened events. */ private _unbindScrollToEvents; /** * Callback - Resize callback. */ private _onResize; /** * Callback - Render callback. */ private _onRender; /** * Callback - Scroll To callback. */ private _onScrollTo; /** * Start RequestAnimationFrame that active Lenis smooth and scroll progress. */ start(): void; /** * Stop RequestAnimationFrame that active Lenis smooth and scroll progress. */ stop(): void; /** * Remove old scroll elements items and rebuild ScrollElements instances. */ removeScrollElements($oldContainer: HTMLElement): void; /** * Add new scroll elements items and rebuild ScrollElements instances. */ addScrollElements($newContainer: HTMLElement): void; /** * Trigger resize callback. */ resize(): void; /** * Trigger scroll to callback. */ scrollTo(target: lenisTargetScrollTo, options?: ILenisScrollToOptions): void; /** * RequestAnimationFrame that active Lenis smooth and scroll progress. * * @private * */ private _raf; }