import { ReactNode } from 'react';
interface ColumnVisibilityStatesContextType {
    getHideColumn?: (columnIndex: number) => undefined | (() => void);
    showAllColumns?: () => void;
    isHiddenColumn?: (columnIndex: number) => boolean;
}
export declare const ColumnVisibilityStatesContext: import("react").Context<ColumnVisibilityStatesContextType>;
interface ColumnVisibilityStatesProviderProps {
    localStorageKey?: string;
    numColumns: number;
    onColumnsVisibilityChange?: (columns: MaybeHiddenColumn[]) => void;
    children: ReactNode;
}
export interface HiddenColumn {
    hidden: true;
}
export type MaybeHiddenColumn = HiddenColumn | undefined;
export declare function ColumnVisibilityStatesProvider({ children, localStorageKey, numColumns, onColumnsVisibilityChange }: ColumnVisibilityStatesProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useColumnVisibilityStates(): ColumnVisibilityStatesContextType;
export {};
