import type { TablePlugin } from './types';
/**
 * Converts a named plugin record (`Record<string, TablePlugin>`) to a stable
 * memoized array for `BaseTable`. Compares plugin values by identity so
 * that inline `plugins={{ selection: stablePlugin }}` doesn't break row
 * memoization — only produces a new array when a plugin value actually changes.
 *
 * Plugins are sorted into a canonical order (see PLUGIN_ORDER) so that
 * interactions between first-party plugins are deterministic.
 *
 * @param basePlugins - Stable array of built-in plugins (e.g. Astryx style plugin)
 * @param userPlugins - Named plugin record from the consumer
 * @returns Stable array of plugins suitable for BaseTable
 *
 * @example
 * ```
 * const plugins = useBaseTablePlugins([tablePlugin], userPlugins);
 * <BaseTable plugins={plugins} ... />
 * ```
 */
export declare function useBaseTablePlugins<T extends Record<string, unknown>>(basePlugins: TablePlugin<T>[], userPlugins: Record<string, TablePlugin<T>> | undefined): TablePlugin<T>[];
//# sourceMappingURL=useBaseTablePlugins.d.ts.map