import * as React from 'react';
import type { HasChildren } from '../../types';
export type GetScrollOptions = {
    compensateKeyboardHeight?: boolean;
};
export interface ScrollContextInterface {
    getScroll: (this: void, options?: GetScrollOptions) => {
        x: number;
        y: number;
    };
    scrollTo: (this: void, x?: number, y?: number) => void;
    /**
     * Увеличивает счетчик блокировки прокрутки.
     */
    incrementScrollLockCounter: (this: void) => void;
    /**
     * Уменьшает счетчик блокировки прокрутки.
     */
    decrementScrollLockCounter: (this: void) => void;
    beforeScrollLockFnSetRef?: React.RefObject<Set<() => void>>;
}
export declare const ScrollContext: React.Context<ScrollContextInterface>;
export declare const useScroll: () => ScrollContextInterface;
export declare function useManualScroll(): Pick<ScrollContextInterface, 'scrollTo' | 'getScroll'>;
export interface ScrollControllerProps extends HasChildren {
    elRef: React.RefObject<HTMLElement | null>;
}
export declare const GlobalScrollController: ({ children }: ScrollControllerProps) => React.ReactNode;
export declare const ElementScrollController: ({ elRef, children, }: ScrollControllerProps) => React.ReactNode;
/**
 * Блокирует прокрутку окна.
 *
 * @param enabled - Если false то не будет блокировать.
 */
export declare const useScrollLock: (enabled?: boolean) => void;
//# sourceMappingURL=ScrollContext.d.ts.map