import React from 'react';
import type { Nullable } from '../../typings/utility-types.js';
import type { ScrollContainerProps } from './ScrollContainer.js';
export type ScrollAxis = 'x' | 'y';
export type ScrollBarScrollState = 'begin' | 'middle' | 'end';
export interface ScrollBarState {
    active: boolean;
    hover: boolean;
    scrollingByMouseDrag: boolean;
    size: number;
    pos: number;
    scrollState: ScrollBarScrollState;
}
export interface ScrollBarProps {
    /** Инвертирует цвет скроллбара. */
    invert: boolean;
    /** Задает ось скроллбара. */
    axis: ScrollAxis;
    /** Задает HTML-атрибут class. */
    className?: string;
    /** Задает функцию, которая вызывается при скролле. */
    onScroll?: (axis: ScrollAxis, state: ScrollBarScrollState, prevState: ScrollBarScrollState) => void;
    /** Задает отступ от края экрана. */
    offset: ScrollContainerProps['offsetY'] | ScrollContainerProps['offsetX'];
    /** Отключает анимацию. */
    disableAnimations?: boolean;
    /** Определяет, виден ли скроллбар. */
    isVisible: boolean;
}
export declare class ScrollBar extends React.Component<ScrollBarProps, ScrollBarState> {
    private inner;
    private containerRef;
    private globalObject;
    private emotion;
    private cx;
    private styles;
    private theme;
    node: Nullable<HTMLElement>;
    state: ScrollBarState;
    componentDidMount(): void;
    componentDidUpdate(): void;
    render(): React.JSX.Element;
    private renderMain;
    reflow: () => void;
    setInnerElement: (inner: Nullable<HTMLElement>) => void;
    setHover(hover: boolean): void;
    getHover(): boolean;
    get scrollBarState(): ScrollBarScrollState;
    private get scrollBarStyles();
    private get scrollBarContainerClassNames();
    private refScroll;
    private handleScrollMouseDown;
    private handleScrollWheel;
    private getImmediateScrollState;
}
