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