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 {};