import type { ErrorId } from './errorMessages/errorText';
import type { Severity } from './logging';
/**
 * Development-time configuration for the {@link ValidationModule}. Configuration is global, not
 * per-grid: the most recent `enableDevValidations`/`ValidationModule.with` call wins and applies to
 * every grid on the page.
 */
export interface DevValidationOptions {
    /**
     * The diagnostic severities to turn into thrown errors instead of console messages, so problems fail
     * fast and loudly rather than scrolling past unnoticed. This gives you a tight feedback loop for
     * automated workflows — e.g. e2e runs or AI-assisted development — where a hard failure is surfaced
     * and acted on immediately.
     *
     * Each listed severity is thrown on independently — e.g. `['error']` throws on errors only,
     * `['deprecation', 'error']` throws on deprecations and errors but not warnings, and
     * `['deprecation', 'warning', 'error']` throws on everything.
     *
     * Defaults to `[]` (never throws).
     *
     * Caveat: a diagnostic raised while a grid is still initialising throws part-way through its setup,
     * leaving that grid partially built and unusable. Use this with harnesses that recreate the grid on
     * failure — not to carry on with the same instance after a throw — and never in production.
     */
    throwOn?: Severity[];
    /**
     * The diagnostic severities to render in a development overlay over the grid, mirroring
     * {@link throwOn}. Each listed severity is shown independently — e.g. `['error']` shows errors only,
     * and `['deprecation', 'warning', 'error']` shows everything.
     *
     * Defaults to `['deprecation', 'warning', 'error']` (shows everything). Pass `[]` to show nothing.
     */
    showOverlayOn?: Severity[];
    /**
     * Error ids to ignore — for diagnostics you have reviewed and accepted. A suppressed id is kept out
     * of the overlay and is never thrown by {@link throwOn}, but is still logged to the console once.
     * Defaults to none.
     */
    suppress?: ErrorId[];
}
export declare function _getDevOverlaySeverities(): readonly Severity[];
/**
 * Resolves the supplied options against the defaults and pushes the resulting diagnostic configuration
 * into the logging layer. Each call fully replaces the previous configuration — options left out reset
 * to their defaults, so registering without options does not inherit an earlier `throwOn`/`showOverlayOn`.
 * Always enables capture, since reaching here means the ValidationModule is active.
 */
export declare function _applyDevValidationConfig(options?: DevValidationOptions): void;
/**
 * Turns on diagnostic capture without touching `throwOn`/`showOverlayOn`, so registering the ValidationModule
 * directly (without {@link enableDevValidations} or `ValidationModule.with`) still buffers diagnostics
 * for the overlay. Touching only capture means it cannot clobber options set by a `with` call, whatever
 * the registration order.
 */
export declare function _enableDiagnosticCapture(): void;
