import { AdaptableOptions } from './AdaptableOptions';
/**
 * Merges the user-supplied `adaptableOptions` with `DefaultAdaptableOptions`,
 * filling in any missing values at any nesting depth.
 *
 * Behaviour:
 * - User-supplied leaf values always win.
 * - Nested plain-object blocks (e.g. `editOptions.plusMinusOptions`,
 *   `fdc3Options.actionColumnDefaultConfiguration.rowScope`) are recursively
 *   merged so the user can override individual leaves without losing other
 *   default leaves in the same block.
 * - Arrays, functions, primitives and class instances are NOT element-merged —
 *   the user's value replaces the default entirely.
 * - The caller's input object is never mutated.
 *
 * Adding a new options block or nested sub-block only requires updating
 * `DefaultAdaptableOptions` above — this function does not need to be touched.
 */
export declare function applyDefaultAdaptableOptions(adaptableOptions: AdaptableOptions): AdaptableOptions;
export declare const getDefaultAdaptableOptions: () => AdaptableOptions<any, Record<string, any>>;
