import { type CanonicalToolsConfig } from "./tools-config-normalizer.js";
import { type FrameworkErrorModel } from "./framework-error.js";
import type { ToolRegistry } from "./ToolRegistry.js";
export type ToolConfigStrictness = "off" | "warn" | "error";
export type ToolConfigDiagnosticSeverity = "warning" | "error";
export interface ToolConfigDiagnostic {
    code: "tools.unknownToolId" | "tools.unsupportedLevel" | "tools.unknownProviderKey" | "tools.removedProviderKey" | "tools.providerSanitizeFailed" | "tools.providerValidateFailed" | "tools.invalidProviderValidation";
    severity: ToolConfigDiagnosticSeverity;
    path: string;
    message: string;
    toolId?: string;
    providerId?: string;
}
export interface ToolConfigValidationOptions {
    strictness?: ToolConfigStrictness;
    source?: string;
    toolRegistry?: ToolRegistry | null;
}
export interface ToolConfigValidationResult {
    config: CanonicalToolsConfig;
    diagnostics: ToolConfigDiagnostic[];
}
export declare function frameworkErrorFromToolConfigValidation(args: {
    source: string;
    diagnostics?: ToolConfigDiagnostic[] | null;
    error?: unknown;
    recoverable?: boolean;
}): FrameworkErrorModel;
export declare function normalizeToolConfigStrictness(value: unknown): ToolConfigStrictness;
export declare function normalizeAndValidateToolsConfig(input?: Partial<CanonicalToolsConfig> | null, options?: ToolConfigValidationOptions): ToolConfigValidationResult;
