import type { EnumValueDefinitionNode, FieldDefinitionNode, TypeDefinitionNode } from 'graphql'; import type { LocationLike } from './location.js'; import { MessageLocation } from './location.js'; import type { QuickFix } from './quick-fix.js'; import type { CompatibilityIssueCode, InfoCode, MessageCode, WarningCode } from './suppress/message-codes.js'; export declare enum Severity { ERROR = "ERROR", WARNING = "WARNING", INFO = "INFO", COMPATIBILITY_ISSUE = "COMPATIBILITY_ISSUE" } export interface ValidationMessageOptions { readonly quickFixes?: ReadonlyArray; } export interface SuppressableValidationMessageOptions extends ValidationMessageOptions { /** * The location where to report the message, in case it differs from the astNode */ readonly location?: LocationLike; } export interface ValidationMessageParams { readonly severity: Severity; readonly message: string; readonly quickFixes?: ReadonlyArray; readonly location?: LocationLike; readonly code?: MessageCode; readonly isSuppressed?: boolean; } export type AstNodeWithDirectives = FieldDefinitionNode | TypeDefinitionNode | EnumValueDefinitionNode; export declare class ValidationMessage { readonly severity: Severity; readonly message: string; readonly location: MessageLocation | undefined; readonly quickFixes: ReadonlyArray; readonly isSuppressed: boolean; /** * The code that can be used to suppress this message (only set for suppressable messages) */ readonly code: MessageCode | undefined; constructor(params: ValidationMessageParams); static suppressableMessage(severity: Severity.WARNING | Severity.INFO | Severity.COMPATIBILITY_ISSUE, code: MessageCode, message: string, astNode: AstNodeWithDirectives | undefined, options?: SuppressableValidationMessageOptions): ValidationMessage; static error(message: string, location: LocationLike | undefined, options?: ValidationMessageOptions): ValidationMessage; static suppressableWarning(code: WarningCode, message: string, astNode: AstNodeWithDirectives | undefined, options?: SuppressableValidationMessageOptions): ValidationMessage; static nonSuppressableWarning(message: string, location: LocationLike | undefined, options?: ValidationMessageOptions): ValidationMessage; static suppressableInfo(code: InfoCode, message: string, astNode: AstNodeWithDirectives | undefined, options?: SuppressableValidationMessageOptions): ValidationMessage; static nonSuppressableInfo(message: string, location: LocationLike | undefined, options?: ValidationMessageOptions): ValidationMessage; static suppressableCompatibilityIssue(code: CompatibilityIssueCode, message: string, astNode: AstNodeWithDirectives | undefined, options?: SuppressableValidationMessageOptions): ValidationMessage; static nonSuppressableCompatibilityIssue(message: string, location: LocationLike | undefined, options?: ValidationMessageOptions): ValidationMessage; toString(): string; }