import type { ReactNode } from 'react';
/**
 * The width of a column depends on several factors.
 * Some are given:
 * - the number of columns
 * - the global minimum width (minWidth prop, 50px by default)
 * - the minimum width for a specific column, which overrides the default one (see ColumnParametersContext, optional)
 * - the available width in the table (depends on the component resizes)
 * Others are a state:
 * - the fixed width, when a user resizes the column (note: it is stored in the local storage, and we don't adjust other columns when setting a fixed column)
 * - the measured width (obtained by releasing any restriction on the column and measuring the content width - CSS max-width and other rules apply)
 * - the adjusted width, computed to fill the available width when there are measured columns - not set if the column has a fixed width
 *
 * The width must be at least the minimum width. There is no maximum width.
 *
 * The priority order to decide the width of a column, based on these factors, is:
 * 1. fixed width
 * 2. measured width
 * 3. adjusted width (if the column has been measured, and had to be adjusted)
 * 4. undefined (free width, respects the CSS style rules if any)
 *
 * If any of the factors change, the widths of all the columns are recomputed. Special rules:
 * - if a fixed or measured width does not respect the minimum width anymore, it is deleted.
 * - when a column is resized manually (ie. fixed), the other columns remain unchanged and are not adjusted.
 */
interface ColumnWidthsProviderProps {
    /** Optional key to use for local storage (no local storage if not provided) */
    localStorageKey?: string;
    /** Minimum width for a column in pixels */
    minWidth?: number;
    /** Children elements */
    children: ReactNode;
}
/**
 * Handle the column widths state and logic.
 *
 * Provides the ColumnWidthsContext.
 */
export declare function ColumnWidthsProvider({ children, localStorageKey, minWidth }: ColumnWidthsProviderProps): import("react/jsx-runtime").JSX.Element;
export {};
