/** @category AST */ import type { KindTypeMap } from "./KindTypeMap.mjs"; import type { Source } from "./source.mjs"; import type { TokenKind } from "./tokenKind.mjs"; /** * Contains a range of UTF-8 character offsets and token references that * identify the region of the source from which the AST derived. */ export declare class Location { /** The character offset at which this Node begins. */ readonly start: number; /** The character offset at which this Node ends. */ readonly end: number; /** The Token at which this Node begins. */ readonly startToken: Token; /** The Token at which this Node ends. */ readonly endToken: Token; /** The Source document the AST represents. */ readonly source: Source; /** * Creates a Location instance. * @param startToken - The start token. * @param endToken - The end token. * @param source - Source document used to derive error locations. * @example * ```ts * import { Location, Source, Token, TokenKind } from 'graphql/language'; * * const source = new Source('{ hello }'); * const startToken = new Token(TokenKind.BRACE_L, 0, 1, 1, 1); * const endToken = new Token(TokenKind.BRACE_R, 8, 9, 1, 9); * const location = new Location(startToken, endToken, source); * * location.start; // => 0 * location.end; // => 9 * location.source.body; // => '{ hello }' * ``` */ constructor(startToken: Token, endToken: Token, source: Source); /** * Returns the value used by `Object.prototype.toString`. * @returns The built-in string tag for this object. */ get [Symbol.toStringTag](): string; /** * Returns a JSON representation of this location. * @returns The JSON-serializable representation. * @example * ```ts * import { parse } from 'graphql/language'; * * const document = parse('{ hello }'); * const location = document.loc?.toJSON(); * * location; // => { start: 0, end: 9 } * ``` */ toJSON(): { start: number; end: number; }; } /** * Represents a range of characters represented by a lexical token * within a Source. */ export declare class Token { /** The kind of Token. */ readonly kind: TokenKind; /** The character offset at which this Node begins. */ readonly start: number; /** The character offset at which this Node ends. */ readonly end: number; /** The 1-indexed line number on which this Token appears. */ readonly line: number; /** The 1-indexed column number at which this Token begins. */ readonly column: number; /** * For non-punctuation tokens, represents the interpreted value of the token. * * Note: is undefined for punctuation tokens, but typed as string for * convenience in the parser. */ readonly value: string; /** * Tokens exist as nodes in a double-linked-list amongst all tokens * including ignored tokens. is always the first node and * the last. */ readonly prev: Token | null; /** Next token in the token stream, including ignored tokens. */ readonly next: Token | null; /** * Creates a Token instance. * @param kind - Token kind produced by lexical analysis. * @param start - Character offset where this token begins. * @param end - Character offset where this token ends. * @param line - One-indexed line number where this token begins. * @param column - One-indexed column number where this token begins. * @param value - Interpreted value for non-punctuation tokens. * @example * ```ts * import { Token, TokenKind } from 'graphql/language'; * * const token = new Token(TokenKind.NAME, 2, 7, 1, 3, 'hello'); * * token.kind; // => TokenKind.NAME * token.value; // => 'hello' * token.toJSON(); // => { kind: 'Name', value: 'hello', line: 1, column: 3 } * ``` */ constructor(kind: TokenKind, start: number, end: number, line: number, column: number, value?: string); /** * Returns the value used by `Object.prototype.toString`. * @returns The built-in string tag for this object. */ get [Symbol.toStringTag](): string; /** * Returns a JSON representation of this token. * @returns The JSON-serializable representation. * @example * ```ts * import { Lexer, Source } from 'graphql/language'; * * const lexer = new Lexer(new Source('{ hello }')); * const token = lexer.advance().toJSON(); * * token; // => { kind: '{', value: undefined, line: 1, column: 1 } * ``` */ toJSON(): { kind: TokenKind; value?: string; line: number; column: number; }; } /** The list of all possible AST node types. */ export type ASTNode = NameNode | DocumentNode | OperationDefinitionNode | VariableDefinitionNode | VariableNode | SelectionSetNode | FieldNode | ArgumentNode | FragmentArgumentNode | FragmentSpreadNode | InlineFragmentNode | FragmentDefinitionNode | IntValueNode | FloatValueNode | StringValueNode | BooleanValueNode | NullValueNode | EnumValueNode | ListValueNode | ObjectValueNode | ObjectFieldNode | DirectiveNode | NamedTypeNode | ListTypeNode | NonNullTypeNode | SchemaDefinitionNode | OperationTypeDefinitionNode | ScalarTypeDefinitionNode | ObjectTypeDefinitionNode | FieldDefinitionNode | InputValueDefinitionNode | InterfaceTypeDefinitionNode | UnionTypeDefinitionNode | EnumTypeDefinitionNode | EnumValueDefinitionNode | InputObjectTypeDefinitionNode | DirectiveDefinitionNode | SchemaExtensionNode | ScalarTypeExtensionNode | ObjectTypeExtensionNode | InterfaceTypeExtensionNode | UnionTypeExtensionNode | EnumTypeExtensionNode | InputObjectTypeExtensionNode | DirectiveExtensionNode | TypeCoordinateNode | MemberCoordinateNode | ArgumentCoordinateNode | DirectiveCoordinateNode | DirectiveArgumentCoordinateNode; /** Utility type listing all nodes indexed by their kind. */ export type ASTKindToNode = { [NodeT in ASTNode as NodeT['kind']]: NodeT; }; /** @internal */ export declare const QueryDocumentKeys: { [NodeT in ASTNode as NodeT['kind']]: ReadonlyArray; }; /** @internal */ export declare function isNode(maybeNode: any): maybeNode is ASTNode; /** An identifier in a GraphQL document. */ export interface NameNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['NAME']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Parsed value represented by this node. */ readonly value: string; } /** The root AST node for a parsed GraphQL document. */ export interface DocumentNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['DOCUMENT']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Top-level executable and type-system definitions in this document. */ readonly definitions: ReadonlyArray; /** The number of lexical tokens parsed for this document, if token counting was enabled. */ readonly tokenCount?: number | undefined; } /** Any top-level definition that may appear in a GraphQL document. */ export type DefinitionNode = ExecutableDefinitionNode | TypeSystemDefinitionNode | TypeSystemExtensionNode; /** Any executable definition that may appear in an operation document. */ export type ExecutableDefinitionNode = OperationDefinitionNode | FragmentDefinitionNode; /** A query, mutation, or subscription operation definition. */ export interface OperationDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['OPERATION_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** The operation selected for execution. */ readonly operation: OperationTypeNode; /** Name node identifying this AST node. */ readonly name?: NameNode | undefined; /** Variable definitions declared by this operation or fragment. */ readonly variableDefinitions?: ReadonlyArray | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Selections made by this operation, field, or fragment. */ readonly selectionSet: SelectionSetNode; } /** * A narrowed OperationDefinitionNode for subscription operations. * Subscription operations go through a distinct execution pipeline * (source event stream + per-event execution), so narrowing the operation * type allows functions in that pipeline to accept only valid input. */ export interface SubscriptionOperationDefinitionNode extends OperationDefinitionNode { /** Subscription operation kind for this definition. */ readonly operation: (typeof OperationTypeNode)['SUBSCRIPTION']; } /** * The operation types supported by GraphQL executable definitions. * @category Kinds */ export declare const OperationTypeNode: { readonly QUERY: "query"; readonly MUTATION: "mutation"; readonly SUBSCRIPTION: "subscription"; }; /** * The operation types supported by GraphQL executable definitions. * @category Kinds */ export type OperationTypeNode = (typeof OperationTypeNode)[keyof typeof OperationTypeNode]; /** A variable declaration in an operation or experimental fragment definition. */ export interface VariableDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['VARIABLE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** The variable being defined or referenced. */ readonly variable: VariableNode; /** The GraphQL type reference or runtime type for this element. */ readonly type: TypeNode; /** Default value used when no explicit value is supplied. */ readonly defaultValue?: ConstValueNode | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; } /** A variable reference, such as `$id`. */ export interface VariableNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['VARIABLE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; } /** A set of fields and fragments selected from an object, interface, or union. */ export interface SelectionSetNode { /** The discriminator identifying the concrete AST or introspection kind. */ kind: KindTypeMap['SELECTION_SET']; /** The source location for this AST node, if location tracking was enabled. */ loc?: Location | undefined; /** Fields and fragments contained in this selection set. */ selections: ReadonlyArray; } /** Any selection that may appear inside a selection set. */ export type SelectionNode = FieldNode | FragmentSpreadNode | InlineFragmentNode; /** A field selected in an executable GraphQL document. */ export interface FieldNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['FIELD']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The response-key alias for this field, if one was supplied. */ readonly alias?: NameNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Arguments supplied to this field, directive, or coordinate. */ readonly arguments?: ReadonlyArray | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Selections made by this operation, field, or fragment. */ readonly selectionSet?: SelectionSetNode | undefined; } /** An argument supplied to a field or directive. */ export interface ArgumentNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['ARGUMENT']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Parsed value represented by this node. */ readonly value: ValueNode; } /** An argument node whose value is guaranteed to be constant. */ export interface ConstArgumentNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['ARGUMENT']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Parsed value represented by this node. */ readonly value: ConstValueNode; } /** Variable definition declared by a fragment argument. */ export interface FragmentArgumentNode { /** AST node kind for a fragment argument. */ readonly kind: KindTypeMap['FRAGMENT_ARGUMENT']; /** Source location for this fragment argument. */ readonly loc?: Location | undefined; /** Variable name declared by this fragment argument. */ readonly name: NameNode; /** Default value literal for this fragment argument, if provided. */ readonly value: ValueNode; } /** A named fragment spread, such as `...userFields`. */ export interface FragmentSpreadNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['FRAGMENT_SPREAD']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Argument values supplied to the referenced fragment. */ readonly arguments?: ReadonlyArray | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; } /** An inline fragment spread with an optional type condition. */ export interface InlineFragmentNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['INLINE_FRAGMENT']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The type condition that limits where this fragment applies. */ readonly typeCondition?: NamedTypeNode | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Selections made by this operation, field, or fragment. */ readonly selectionSet: SelectionSetNode; } /** A reusable fragment definition declared in an executable document. */ export interface FragmentDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['FRAGMENT_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Experimental variable definitions declared by this fragment definition. */ readonly variableDefinitions?: ReadonlyArray | undefined; /** The type condition that limits where this fragment applies. */ readonly typeCondition: NamedTypeNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Selections made by this operation, field, or fragment. */ readonly selectionSet: SelectionSetNode; } /** Any value literal that may appear in an executable GraphQL document. */ export type ValueNode = VariableNode | IntValueNode | FloatValueNode | StringValueNode | BooleanValueNode | NullValueNode | EnumValueNode | ListValueNode | ObjectValueNode; /** Any value literal that is guaranteed not to contain a variable reference. */ export type ConstValueNode = IntValueNode | FloatValueNode | StringValueNode | BooleanValueNode | NullValueNode | EnumValueNode | ConstListValueNode | ConstObjectValueNode; /** An integer value literal. */ export interface IntValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['INT']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Parsed value represented by this node. */ readonly value: string; } /** A floating-point value literal. */ export interface FloatValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['FLOAT']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Parsed value represented by this node. */ readonly value: string; } /** A string value literal. */ export interface StringValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['STRING']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Parsed value represented by this node. */ readonly value: string; /** Whether this string was parsed from block string syntax. */ readonly block?: boolean | undefined; } /** A boolean value literal. */ export interface BooleanValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['BOOLEAN']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Parsed value represented by this node. */ readonly value: boolean; } /** A null value literal. */ export interface NullValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['NULL']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; } /** An enum value literal. */ export interface EnumValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['ENUM']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Parsed value represented by this node. */ readonly value: string; } /** A list value literal. */ export interface ListValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['LIST']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Values contained in this enum, list, or input-object definition. */ readonly values: ReadonlyArray; } /** A list value literal whose elements are all constant values. */ export interface ConstListValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['LIST']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Values contained in this enum, list, or input-object definition. */ readonly values: ReadonlyArray; } /** An input object value literal. */ export interface ObjectValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['OBJECT']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Fields declared by this object, interface, input object, or literal. */ readonly fields: ReadonlyArray; } /** An input object value literal whose fields are all constant values. */ export interface ConstObjectValueNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['OBJECT']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Fields declared by this object, interface, input object, or literal. */ readonly fields: ReadonlyArray; } /** A field inside an input object value literal. */ export interface ObjectFieldNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['OBJECT_FIELD']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Parsed value represented by this node. */ readonly value: ValueNode; } /** A field inside a constant input object value literal. */ export interface ConstObjectFieldNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['OBJECT_FIELD']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Parsed value represented by this node. */ readonly value: ConstValueNode; } /** A directive applied to an executable or type-system location. */ export interface DirectiveNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['DIRECTIVE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Arguments supplied to this field, directive, or coordinate. */ readonly arguments?: ReadonlyArray | undefined; } /** A directive whose arguments are all constant values. */ export interface ConstDirectiveNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['DIRECTIVE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Arguments supplied to this field, directive, or coordinate. */ readonly arguments?: ReadonlyArray | undefined; } /** Any GraphQL type reference AST node. */ export type TypeNode = NamedTypeNode | ListTypeNode | NonNullTypeNode; /** A named type reference. */ export interface NamedTypeNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['NAMED_TYPE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; } /** A list type reference. */ export interface ListTypeNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['LIST_TYPE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The GraphQL type reference or runtime type for this element. */ readonly type: TypeNode; } /** A non-null type reference. */ export interface NonNullTypeNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['NON_NULL_TYPE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The GraphQL type reference or runtime type for this element. */ readonly type: NamedTypeNode | ListTypeNode; } /** Any type-system definition that may appear in a schema document. */ export type TypeSystemDefinitionNode = SchemaDefinitionNode | TypeDefinitionNode | DirectiveDefinitionNode; /** A schema definition in a type-system document. */ export interface SchemaDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['SCHEMA_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Root operation types declared by this schema definition or extension. */ readonly operationTypes: ReadonlyArray; } /** A root operation type declaration inside a schema definition or extension. */ export interface OperationTypeDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['OPERATION_TYPE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The operation selected for execution. */ readonly operation: OperationTypeNode; /** The GraphQL type reference or runtime type for this element. */ readonly type: NamedTypeNode; } /** Any named type definition that may appear in a schema document. */ export type TypeDefinitionNode = ScalarTypeDefinitionNode | ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | UnionTypeDefinitionNode | EnumTypeDefinitionNode | InputObjectTypeDefinitionNode; /** A scalar type definition in a type-system document. */ export interface ScalarTypeDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['SCALAR_TYPE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; } /** An object type definition in a type-system document. */ export interface ObjectTypeDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['OBJECT_TYPE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Interfaces implemented by this object or interface type. */ readonly interfaces?: ReadonlyArray | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Fields declared by this object, interface, input object, or literal. */ readonly fields?: ReadonlyArray | undefined; } /** A field definition declared by an object or interface type. */ export interface FieldDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['FIELD_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Arguments supplied to this field, directive, or coordinate. */ readonly arguments?: ReadonlyArray | undefined; /** The GraphQL type reference or runtime type for this element. */ readonly type: TypeNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; } /** An argument or input-field definition. */ export interface InputValueDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['INPUT_VALUE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** The GraphQL type reference or runtime type for this element. */ readonly type: TypeNode; /** Default value used when no explicit value is supplied. */ readonly defaultValue?: ConstValueNode | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; } /** An interface type definition in a type-system document. */ export interface InterfaceTypeDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['INTERFACE_TYPE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Interfaces implemented by this object or interface type. */ readonly interfaces?: ReadonlyArray | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Fields declared by this object, interface, input object, or literal. */ readonly fields?: ReadonlyArray | undefined; } /** A union type definition in a type-system document. */ export interface UnionTypeDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['UNION_TYPE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Object types that belong to this union type. */ readonly types?: ReadonlyArray | undefined; } /** An enum type definition in a type-system document. */ export interface EnumTypeDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['ENUM_TYPE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Values contained in this enum, list, or input-object definition. */ readonly values?: ReadonlyArray | undefined; } /** An enum value definition. */ export interface EnumValueDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['ENUM_VALUE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; } /** An input object type definition in a type-system document. */ export interface InputObjectTypeDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['INPUT_OBJECT_TYPE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Fields declared by this object, interface, input object, or literal. */ readonly fields?: ReadonlyArray | undefined; } /** A directive definition in a type-system document. */ export interface DirectiveDefinitionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['DIRECTIVE_DEFINITION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** The optional GraphQL description associated with this definition. */ readonly description?: StringValueNode | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Arguments supplied to this field, directive, or coordinate. */ readonly arguments?: ReadonlyArray | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Whether this directive may appear more than once at the same location. */ readonly repeatable: boolean; /** Locations where this directive may be applied. */ readonly locations: ReadonlyArray; } /** Any type-system extension that may appear in a schema extension document. */ export type TypeSystemExtensionNode = SchemaExtensionNode | TypeExtensionNode | DirectiveExtensionNode; /** A schema extension in a type-system document. */ export interface SchemaExtensionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['SCHEMA_EXTENSION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Root operation types declared by this schema definition or extension. */ readonly operationTypes?: ReadonlyArray | undefined; } /** Any named type extension that may appear in a schema extension document. */ export type TypeExtensionNode = ScalarTypeExtensionNode | ObjectTypeExtensionNode | InterfaceTypeExtensionNode | UnionTypeExtensionNode | EnumTypeExtensionNode | InputObjectTypeExtensionNode; /** A scalar type extension. */ export interface ScalarTypeExtensionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['SCALAR_TYPE_EXTENSION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; } /** An object type extension. */ export interface ObjectTypeExtensionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['OBJECT_TYPE_EXTENSION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Interfaces implemented by this object or interface type. */ readonly interfaces?: ReadonlyArray | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Fields declared by this object, interface, input object, or literal. */ readonly fields?: ReadonlyArray | undefined; } /** An interface type extension. */ export interface InterfaceTypeExtensionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['INTERFACE_TYPE_EXTENSION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Interfaces implemented by this object or interface type. */ readonly interfaces?: ReadonlyArray | undefined; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Fields declared by this object, interface, input object, or literal. */ readonly fields?: ReadonlyArray | undefined; } /** A union type extension. */ export interface UnionTypeExtensionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['UNION_TYPE_EXTENSION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Object types that belong to this union type. */ readonly types?: ReadonlyArray | undefined; } /** An enum type extension. */ export interface EnumTypeExtensionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['ENUM_TYPE_EXTENSION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Values contained in this enum, list, or input-object definition. */ readonly values?: ReadonlyArray | undefined; } /** An input object type extension. */ export interface InputObjectTypeExtensionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['INPUT_OBJECT_TYPE_EXTENSION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; /** Fields declared by this object, interface, input object, or literal. */ readonly fields?: ReadonlyArray | undefined; } /** A directive extension. */ export interface DirectiveExtensionNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['DIRECTIVE_EXTENSION']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location | undefined; /** Name node identifying this AST node. */ readonly name: NameNode; /** Directives available in this schema or applied to this AST node. */ readonly directives?: ReadonlyArray | undefined; } /** Any AST node representing a GraphQL schema coordinate. */ export type SchemaCoordinateNode = TypeCoordinateNode | MemberCoordinateNode | ArgumentCoordinateNode | DirectiveCoordinateNode | DirectiveArgumentCoordinateNode; /** A schema coordinate that refers to a named type. */ export interface TypeCoordinateNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['TYPE_COORDINATE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location; /** Name node identifying this AST node. */ readonly name: NameNode; } /** A schema coordinate that refers to a member of a named type. */ export interface MemberCoordinateNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['MEMBER_COORDINATE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location; /** Name node identifying this AST node. */ readonly name: NameNode; /** The member name referenced by this schema coordinate. */ readonly memberName: NameNode; } /** A schema coordinate that refers to a field or directive argument. */ export interface ArgumentCoordinateNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['ARGUMENT_COORDINATE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location; /** Name node identifying this AST node. */ readonly name: NameNode; /** The field name referenced by this schema coordinate. */ readonly fieldName: NameNode; /** The argument name referenced by this schema coordinate. */ readonly argumentName: NameNode; } /** A schema coordinate that refers to a directive. */ export interface DirectiveCoordinateNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['DIRECTIVE_COORDINATE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location; /** Name node identifying this AST node. */ readonly name: NameNode; } /** A schema coordinate that refers to a directive argument. */ export interface DirectiveArgumentCoordinateNode { /** The discriminator identifying the concrete AST or introspection kind. */ readonly kind: KindTypeMap['DIRECTIVE_ARGUMENT_COORDINATE']; /** The source location for this AST node, if location tracking was enabled. */ readonly loc?: Location; /** Name node identifying this AST node. */ readonly name: NameNode; /** The argument name referenced by this schema coordinate. */ readonly argumentName: NameNode; }