import React from 'react';
import { ReadonlyAsyncStore } from '../../area-chart/async-store';
import { StickyColumnsCellState, StickyColumnsProps, StickyColumnsState } from './interfaces';
export interface StickyColumnsModel {
    store: ReadonlyAsyncStore<StickyColumnsState>;
    style: {
        wrapper?: React.CSSProperties;
    };
    refs: {
        table: React.RefCallback<HTMLElement>;
        wrapper: React.RefCallback<HTMLElement>;
        cell: (columnId: PropertyKey, node: null | HTMLElement) => void;
    };
}
export declare function useStickyColumns({ visibleColumns, stickyColumnsFirst, stickyColumnsLast, }: StickyColumnsProps): StickyColumnsModel;
interface UseStickyCellStylesProps {
    stickyColumns: StickyColumnsModel;
    columnId: PropertyKey;
    getClassName: (styles: null | StickyColumnsCellState) => Record<string, boolean>;
}
interface StickyCellStyles {
    ref: React.RefCallback<HTMLElement>;
    className?: string;
    style?: React.CSSProperties;
}
export declare function useStickyCellStyles({ stickyColumns, columnId, getClassName, }: UseStickyCellStylesProps): StickyCellStyles;
export {};
//# sourceMappingURL=use-sticky-columns.d.ts.map