import { Stability } from '@jsii/spec';
import { Mismatches } from './types';
export declare enum DiagLevel {
    Error = 0,
    Warning = 1,
    Skipped = 2
}
export interface Diagnostic {
    level: DiagLevel;
    message: string;
    suppressionKey: string;
}
export declare function formatDiagnostic(diag: Diagnostic, includeSuppressionKey?: boolean): string;
export declare function hasErrors(diags: Diagnostic[]): boolean;
export declare function onlyErrors(diags: Diagnostic[]): Diagnostic[];
export declare function onlyWarnings(diags: Diagnostic[]): Diagnostic[];
export declare const ERROR_CLASSES: readonly ["prod", "non-experimental", "all"];
export type ErrorClass = (typeof ERROR_CLASSES)[number];
export declare const ERROR_CLASSES_TO_STABILITIES: Record<ErrorClass, Stability[]>;
export declare function treatAsError(errorClass: ErrorClass, deprecatedExperimentalErrors?: boolean): Set<Stability>;
/**
 * Classify API mismatches into a set of warnings and errors
 */
export declare function classifyDiagnostics(mismatches: Mismatches, shouldError: Set<Stability>, skipFilter?: Set<string>): Diagnostic[];
//# sourceMappingURL=diagnostics.d.ts.map