import { BaseGridPlugin } from '../plugin';
import { GridConfig } from '../types';
/**
 * Validate that column properties requiring plugins have those plugins loaded.
 *
 * @param config - The merged grid configuration
 * @param plugins - The array of loaded plugins
 * @throws Error if a plugin-owned property is used without the plugin
 */
export declare function validatePluginProperties<T>(config: GridConfig<T>, plugins: readonly BaseGridPlugin[]): void;
/**
 * Validate plugin configuration rules declared in manifests.
 * Called after plugins are attached to check for invalid/conflicting configurations.
 *
 * Rules with severity 'error' throw an error.
 * Rules with severity 'warn' log a warning to console.
 *
 * @param plugins - The array of attached plugins (with config already merged)
 */
export declare function validatePluginConfigRules(plugins: readonly BaseGridPlugin[]): void;
/**
 * Validate plugin-to-plugin dependencies.
 * Called by PluginManager when attaching a new plugin.
 *
 * Dependencies are read from the plugin's static `dependencies` property.
 *
 * For hard dependencies (required: true), throws an error if the dependency is not loaded.
 * For soft dependencies (required: false), logs an info message but continues.
 *
 * @param plugin - The plugin instance being attached
 * @param loadedPlugins - The array of already-loaded plugins
 * @throws Error if a required dependency is missing
 */
export declare function validatePluginDependencies(plugin: BaseGridPlugin, loadedPlugins: readonly BaseGridPlugin[]): void;
/**
 * Validate that no incompatible plugins are loaded together.
 * Called after all plugins are attached to the grid.
 *
 * Incompatibilities are read from each plugin's manifest `incompatibleWith` property.
 * When a conflict is detected, a warning is logged (in development mode).
 *
 * @param plugins - All attached plugins
 */
export declare function validatePluginIncompatibilities(plugins: readonly BaseGridPlugin[]): void;
//# sourceMappingURL=validate-config.d.ts.map