Mirror: The spec-compliant minimum of client-side GraphQL.
1import type { Location } from './types';
2import type { Kind, OperationTypeNode } from './kind';
3
4import type {
5 StringValueNode,
6 ConstDirectiveNode,
7 ConstValueNode,
8 NamedTypeNode,
9 TypeNode,
10 NameNode,
11} from './ast';
12
13/** Type System Definition */
14export declare type TypeSystemDefinitionNode =
15 | SchemaDefinitionNode
16 | TypeDefinitionNode
17 | DirectiveDefinitionNode;
18
19export interface SchemaDefinitionNode {
20 readonly kind: Kind.SCHEMA_DEFINITION;
21 readonly loc?: Location;
22 readonly description?: StringValueNode;
23 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
24 readonly operationTypes: ReadonlyArray<OperationTypeDefinitionNode>;
25}
26
27export interface OperationTypeDefinitionNode {
28 readonly kind: Kind.OPERATION_TYPE_DEFINITION;
29 readonly loc?: Location;
30 readonly operation: OperationTypeNode;
31 readonly type: NamedTypeNode;
32}
33
34/** Type Definition */
35export declare type TypeDefinitionNode =
36 | ScalarTypeDefinitionNode
37 | ObjectTypeDefinitionNode
38 | InterfaceTypeDefinitionNode
39 | UnionTypeDefinitionNode
40 | EnumTypeDefinitionNode
41 | InputObjectTypeDefinitionNode;
42
43export interface ScalarTypeDefinitionNode {
44 readonly kind: Kind.SCALAR_TYPE_DEFINITION;
45 readonly loc?: Location;
46 readonly description?: StringValueNode;
47 readonly name: NameNode;
48 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
49}
50
51export interface ObjectTypeDefinitionNode {
52 readonly kind: Kind.OBJECT_TYPE_DEFINITION;
53 readonly loc?: Location;
54 readonly description?: StringValueNode;
55 readonly name: NameNode;
56 readonly interfaces?: ReadonlyArray<NamedTypeNode>;
57 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
58 readonly fields?: ReadonlyArray<FieldDefinitionNode>;
59}
60
61export interface FieldDefinitionNode {
62 readonly kind: Kind.FIELD_DEFINITION;
63 readonly loc?: Location;
64 readonly description?: StringValueNode;
65 readonly name: NameNode;
66 readonly arguments?: ReadonlyArray<InputValueDefinitionNode>;
67 readonly type: TypeNode;
68 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
69}
70
71export interface InputValueDefinitionNode {
72 readonly kind: Kind.INPUT_VALUE_DEFINITION;
73 readonly loc?: Location;
74 readonly description?: StringValueNode;
75 readonly name: NameNode;
76 readonly type: TypeNode;
77 readonly defaultValue?: ConstValueNode;
78 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
79}
80
81export interface InterfaceTypeDefinitionNode {
82 readonly kind: Kind.INTERFACE_TYPE_DEFINITION;
83 readonly loc?: Location;
84 readonly description?: StringValueNode;
85 readonly name: NameNode;
86 readonly interfaces?: ReadonlyArray<NamedTypeNode>;
87 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
88 readonly fields?: ReadonlyArray<FieldDefinitionNode>;
89}
90
91export interface UnionTypeDefinitionNode {
92 readonly kind: Kind.UNION_TYPE_DEFINITION;
93 readonly loc?: Location;
94 readonly description?: StringValueNode;
95 readonly name: NameNode;
96 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
97 readonly types?: ReadonlyArray<NamedTypeNode>;
98}
99
100export interface EnumTypeDefinitionNode {
101 readonly kind: Kind.ENUM_TYPE_DEFINITION;
102 readonly loc?: Location;
103 readonly description?: StringValueNode;
104 readonly name: NameNode;
105 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
106 readonly values?: ReadonlyArray<EnumValueDefinitionNode>;
107}
108
109export interface EnumValueDefinitionNode {
110 readonly kind: Kind.ENUM_VALUE_DEFINITION;
111 readonly loc?: Location;
112 readonly description?: StringValueNode;
113 readonly name: NameNode;
114 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
115}
116
117export interface InputObjectTypeDefinitionNode {
118 readonly kind: Kind.INPUT_OBJECT_TYPE_DEFINITION;
119 readonly loc?: Location;
120 readonly description?: StringValueNode;
121 readonly name: NameNode;
122 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
123 readonly fields?: ReadonlyArray<InputValueDefinitionNode>;
124}
125/** Directive Definitions */
126export interface DirectiveDefinitionNode {
127 readonly kind: Kind.DIRECTIVE_DEFINITION;
128 readonly loc?: Location;
129 readonly description?: StringValueNode;
130 readonly name: NameNode;
131 readonly arguments?: ReadonlyArray<InputValueDefinitionNode>;
132 readonly repeatable: boolean;
133 readonly locations: ReadonlyArray<NameNode>;
134}
135/** Type System Extensions */
136export declare type TypeSystemExtensionNode = SchemaExtensionNode | TypeExtensionNode;
137export interface SchemaExtensionNode {
138 readonly kind: Kind.SCHEMA_EXTENSION;
139 readonly loc?: Location;
140 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
141 readonly operationTypes?: ReadonlyArray<OperationTypeDefinitionNode>;
142}
143/** Type Extensions */
144export declare type TypeExtensionNode =
145 | ScalarTypeExtensionNode
146 | ObjectTypeExtensionNode
147 | InterfaceTypeExtensionNode
148 | UnionTypeExtensionNode
149 | EnumTypeExtensionNode
150 | InputObjectTypeExtensionNode;
151export interface ScalarTypeExtensionNode {
152 readonly kind: Kind.SCALAR_TYPE_EXTENSION;
153 readonly loc?: Location;
154 readonly name: NameNode;
155 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
156}
157
158export interface ObjectTypeExtensionNode {
159 readonly kind: Kind.OBJECT_TYPE_EXTENSION;
160 readonly loc?: Location;
161 readonly name: NameNode;
162 readonly interfaces?: ReadonlyArray<NamedTypeNode>;
163 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
164 readonly fields?: ReadonlyArray<FieldDefinitionNode>;
165}
166
167export interface InterfaceTypeExtensionNode {
168 readonly kind: Kind.INTERFACE_TYPE_EXTENSION;
169 readonly loc?: Location;
170 readonly name: NameNode;
171 readonly interfaces?: ReadonlyArray<NamedTypeNode>;
172 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
173 readonly fields?: ReadonlyArray<FieldDefinitionNode>;
174}
175
176export interface UnionTypeExtensionNode {
177 readonly kind: Kind.UNION_TYPE_EXTENSION;
178 readonly loc?: Location;
179 readonly name: NameNode;
180 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
181 readonly types?: ReadonlyArray<NamedTypeNode>;
182}
183
184export interface EnumTypeExtensionNode {
185 readonly kind: Kind.ENUM_TYPE_EXTENSION;
186 readonly loc?: Location;
187 readonly name: NameNode;
188 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
189 readonly values?: ReadonlyArray<EnumValueDefinitionNode>;
190}
191
192export interface InputObjectTypeExtensionNode {
193 readonly kind: Kind.INPUT_OBJECT_TYPE_EXTENSION;
194 readonly loc?: Location;
195 readonly name: NameNode;
196 readonly directives?: ReadonlyArray<ConstDirectiveNode>;
197 readonly fields?: ReadonlyArray<InputValueDefinitionNode>;
198}