import React from 'react';
import { ColumnWidthStyle } from './column-widths-utils';
export declare const DEFAULT_COLUMN_WIDTH = 120;
export interface ColumnWidthDefinition extends ColumnWidthStyle {
    id: PropertyKey;
}
interface WidthsContext {
    getColumnStyles(sticky: boolean, columnId: PropertyKey): ColumnWidthStyle;
    columnWidths: Map<PropertyKey, number>;
    updateColumn: (columnId: PropertyKey, newWidth: number) => void;
    updateGroup: (groupId: PropertyKey, newWidth: number) => void;
    setCell: (sticky: boolean, columnId: PropertyKey, node: null | HTMLElement) => void;
    setCol: (columnId: PropertyKey, node: null | HTMLElement) => void;
}
declare const WidthsContext: React.Context<WidthsContext>;
interface WidthProviderProps {
    visibleColumns: readonly ColumnWidthDefinition[];
    resizableColumns: boolean | undefined;
    containerRef: React.RefObject<HTMLElement>;
    children: React.ReactNode;
    groupColumnMap?: Map<string, string[]>;
}
export declare function ColumnWidthsProvider({ visibleColumns, resizableColumns, containerRef, groupColumnMap, children, }: WidthProviderProps): JSX.Element;
export declare function useColumnWidths(): WidthsContext;
export {};
//# sourceMappingURL=use-column-widths.d.ts.map