import { Identifiable } from '@empathyco/x-types' ; import { ScrollDirection } from '../../../components/scroll/scroll.types' ; import { XStoreModule } from '../../../store' ; import { Dictionary } from '../../../utils/types' ; public export interface ScrollState { /**
     * State data of the scroll components.
     */ data : Dictionary < ScrollComponentState > ; /**
     * The `[data-scroll]` value of the pending to restore scroll.
     */ pendingScrollTo : string ; } public export interface ScrollComponentState { /**
     * The position in pixels the user has scrolled down.
     */ position : number ; /**
     * The direction the user is scrolling.
     */ direction : ScrollDirection ; /**
     * True if the user has almost reached the end of the scroll panel.
     */ hasAlmostReachedEnd : boolean ; /**
     * True if the user has already reached the end of the scroll panel.
     */ hasReachedEnd : boolean ; /**
     * True if the scroll position is 0.
     */ hasReachedStart : boolean ; } public export interface ScrollGetters { } public export interface ScrollMutations { param pendingScrollTo setPendingScrollTo ( pendingScrollTo ) : void ; param partialState setScrollComponentState ( partialState ) : void ; } public export interface ScrollStatePayload extends Identifiable < string > { /**
     * A partial  ScrollComponentState update to perform to the targeted panel.
      newState : Partial < ScrollComponentState > ; } public export interface ScrollActions { } public export type ScrollXStoreModule = XStoreModule < ScrollState , ScrollGetters , ScrollMutations , ScrollActions > ;