import type { ValidationModuleName } from '../interfaces/iModule';
import type { RowModelType } from '../interfaces/iRowModel';
import type { ErrorId, ErrorMap, GetErrorParams, MissingModuleErrors } from './errorMessages/errorText';
export declare let baseDocLink: string;
/**
 * The ValidationService passes itself in if it has been included.
 * @param logger
 */
export declare function provideValidationServiceLogger(logger: <TId extends ErrorId>(id: TId, args: GetErrorParams<TId>) => any[]): void;
/** Set by the Framework override to give us accurate links for the framework  */
export declare function setValidationDocLink(docLink: string): void;
export type Severity = 'error' | 'warning' | 'deprecation';
/**
 * Whether `severity` is one of the `enabled` severities to act on. An empty list matches nothing.
 * Shared by the throw-on check and the overlay's severity filter so both honour the same set model.
 */
export declare function _isSeverityEnabled(severity: Severity, enabled: readonly Severity[]): boolean;
/**
 * A diagnostic captured for the developer overlay (config errors, runtime errors and warnings).
 */
export interface CapturedDiagnostic {
    id: ErrorId;
    params: any;
    severity: Severity;
    /**
     * The grid that emitted this, so a listener surfaces only its own grid's diagnostics. Set when the
     * emitting bean routes through its grid-scoped log service (or an explicit grid id is threaded in),
     * and undefined when emitted outside any grid (e.g. a bootstrap failure, or a standalone export).
     */
    gridId?: string;
    /** Fallback message used when the ValidationModule is not registered to supply the full text. */
    defaultMessage?: string;
}
/**
 * Stable identity key for deduping captured diagnostics: the same `id` and `params` yield the same key.
 * Non-serialisable params (functions, circular refs) fall back to `${id}:unserialisable:${fallbackSeed}`
 * so distinct entries are never collapsed — callers pass a per-call seed (a counter or index) for this.
 */
export declare function _diagnosticKey(diagnostic: CapturedDiagnostic, fallbackSeed: string | number): string;
type DiagnosticListener = (diagnostic: CapturedDiagnostic) => void;
/**
 * Called by the ValidationModule to enable diagnostic capture and set the severities to throw on and/or
 * the suppressed ids. Core never imports the ValidationModule, so its config is pushed in through this
 * setter (the same idiom as `provideValidationServiceLogger`) to keep the dependency direction one-way.
 */
export declare function _configureDiagnostics(config: {
    capture?: boolean;
    throwOn?: readonly Severity[];
    suppress?: ErrorId[];
}): void;
/**
 * Registers a listener notified of captured diagnostics for `gridId` (plus any not tied to a grid),
 * used by the error overlay. Pass `gridId: undefined` for a page-level listener that sees everything.
 * Diagnostics already buffered before it attached (and matching it) are replayed immediately. Returns
 * a cleanup function that removes the listener and, once the last listener detaches, drops the buffer
 * so a later grid does not inherit stale diagnostics.
 */
export declare function _addDiagnosticListener(gridId: string | undefined, listener: DiagnosticListener): () => void;
type BootstrapPanelRenderer = (container: HTMLElement, diagnostics: CapturedDiagnostic[]) => void;
/**
 * Pushed in by the ValidationModule (which core never imports) to render a standalone panel of
 * bootstrap-failure diagnostics, for when grid creation aborts before any bean — and thus the overlay —
 * exists. Mirrors the provideValidationServiceLogger setter idiom to keep the dependency direction one-way.
 */
export declare function _provideBootstrapPanelRenderer(renderer: BootstrapPanelRenderer): void;
/**
 * Renders the buffered diagnostics not tied to a grid (e.g. a missing row-model module that aborts grid
 * creation) into `container`, when the ValidationModule has provided a renderer. No-op otherwise, so core
 * stays decoupled and production pays nothing.
 */
export declare function _renderBootstrapPanel(container: HTMLElement): void;
/**
 * The context a single missing-module report carries, matching the id-200 message params.
 * @knipIgnore Param type of the exported `_reportMissingModule`; also used in tests.
 */
export interface MissingModuleReportParams {
    reasonOrId: string | keyof MissingModuleErrors;
    moduleName: ValidationModuleName | ValidationModuleName[];
    gridScoped: boolean;
    gridId: string;
    rowModelType: RowModelType;
    additionalText?: string;
    isUmd?: boolean;
    usesAgGridProvider?: boolean;
}
/**
 * Accumulates a missing-module report to be flushed as a single combined error after a short debounce,
 * deduped per grid by module+reason. The console output is always batched (even in production without the
 * ValidationModule); the overlay capture is added when capture is enabled and the id is not suppressed.
 * Throw-on-severity stays synchronous and per-module so throw mode keeps its call stack and fails fast.
 * @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time.
 */
export declare function _reportMissingModule(params: MissingModuleReportParams): void;
/**
 * Clears the missing-module batch and its page-wide dedup so a fresh "page" starts clean. For test
 * harnesses that reuse the module across cases (mirrors clearing the `_doOnce` dedup on reset).
 * @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time.
 */
export declare function _resetMissingModuleReports(): void;
/**
 * Formats a string, or the literal `null`/`undefined`, into a human-readable string.
 */
export declare function toStringWithNullUndefined(str: string | null | undefined): string;
export declare function getErrorLink(errorNum: ErrorId, args: GetErrorParams<any>): string;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function _warnWithoutAttribution<TId extends ErrorId, TShowMessageAtCallLocation = ErrorMap[TId]>(...args: GetErrorParams<TId> extends undefined ? [id: TId] : [id: TId, params: GetErrorParams<TId>]): void;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function _errorWithoutAttribution<TId extends ErrorId, TShowMessageAtCallLocation = ErrorMap[TId]>(...args: GetErrorParams<TId> extends undefined ? [id: TId] : [id: TId, params: GetErrorParams<TId>]): void;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function _warnForGrid(gridId: string, id: ErrorId, params?: any): void;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function _deprecatedForGrid(gridId: string, id: ErrorId, params?: any): void;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function _errorForGrid(gridId: string, id: ErrorId, params?: any): void;
/** Used for messages before the ValidationService has been created */
export declare function _logPreInitErr<TId extends ErrorId, TShowMessageAtCallLocation = ErrorMap[TId]>(id: TId, args: GetErrorParams<TId>, defaultMessage: string): void;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function _logPreInitWarn<TId extends ErrorId, TShowMessageAtCallLocation = ErrorMap[TId]>(id: TId, args: GetErrorParams<TId>, defaultMessage: string): void;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function _errMsg<TId extends ErrorId, TShowMessageAtCallLocation = ErrorMap[TId]>(...args: GetErrorParams<TId> extends undefined ? [id: TId] : [id: TId, params: GetErrorParams<TId>]): string;
/**
 * Used for messages before the ValidationService has been created
 * @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time.
 */
export declare function _preInitErrMsg<TId extends ErrorId, TShowMessageAtCallLocation = ErrorMap[TId]>(...args: GetErrorParams<TId> extends undefined ? [id: TId] : [id: TId, params: GetErrorParams<TId>]): string;
export {};
