import { EnumValueDefinitionNode, FieldDefinitionNode, TypeDefinitionNode } from 'graphql'; import { CompatibilityIssueCode, InfoCode, MessageCode, WarningCode } from './suppress/message-codes'; import { LocationLike, MessageLocation } from './location'; import { QuickFix } from './quick-fix'; 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; 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; }