import React, { MutableRefObject } from 'react'; import { NativeScrollEvent, NativeSyntheticEvent, ScrollView, ScrollViewProps } from "react-native"; declare const scrollProperties: "scrollTo"[]; type ScrollProperty = (typeof scrollProperties)[number]; type ScrollEvents = Pick; export type Scrollable = Pick & { subscribe(e: T, cb: ScrollEvents[T]): () => void; }; /** * Augments a plain `ScrollView` ref with a pub/sub `subscribe` method so that sibling components (e.g. a floating header) can react to scroll events without prop-drilling. The augmented ref is exposed via `useImperativeHandle` so the parent sees the extended interface; the underlying `ScrollView` ref is called through directly so no native bridge call is duplicated. */ export declare const useScrollPubSub: (ref: MutableRefObject>) => { ref: React.RefObject; emit: (event: keyof ScrollEvents, e: NativeSyntheticEvent) => void; }; export declare const ScrollProvider: React.ForwardRefExoticComponent<{ children?: React.ReactNode | undefined; } & React.RefAttributes>; export declare function useWrappingScrollable(): { current: Scrollable; }; export {}; //# sourceMappingURL=scroll.d.ts.map