import React, { MutableRefObject, ReactNode } from "react";
export declare type IScrollOptions = {
    withContext?: boolean;
};
export declare type IScrollState = ReturnType<typeof useScrollState>;
export declare const ScrollContext: React.Context<[scrollRef: React.MutableRefObject<ScrollState | undefined>, registerScrollCallback: (callback: ScrollCallback) => void, unregisterScrollCallback: (callback: ScrollCallback) => void, setElementContext: (element: HTMLElement) => void] | null>;
export interface IScrollContextProvider extends Partial<IScrollOptions> {
    children?: ReactNode;
}
export interface ScrollState {
    currentPosition: number;
    prevPosition?: number;
}
export declare type ScrollCallback = (scroll?: number, lastScroll?: number) => void;
export declare const useScrollState: ({ withContext, }: IScrollOptions) => [scrollRef: React.MutableRefObject<ScrollState | undefined>, registerScrollCallback: (callback: ScrollCallback) => void, unregisterScrollCallback: (callback: ScrollCallback) => void, setElementContext: (element: HTMLElement) => void];
export declare const useScrollContext: () => [scrollRef: React.MutableRefObject<ScrollState | undefined>, registerScrollCallback: (callback: ScrollCallback) => void, unregisterScrollCallback: (callback: ScrollCallback) => void, setElementContext: (element: HTMLElement) => void];
export declare const ScrollContextProvider: React.FC<IScrollContextProvider>;
//# sourceMappingURL=scroll.context.d.ts.map