export interface Argument { name: string; description: string; type: string; isRequired: boolean; isArray: boolean; isType: boolean; isScalar: boolean; isInterface: boolean; isUnion: boolean; isInputType: boolean; isEnum: boolean; } export interface Field { name: string; description: string; arguments: Argument[]; type: string; isArray: boolean; isRequired: boolean; hasArguments: boolean; isType: boolean; isScalar: boolean; isInterface: boolean; isUnion: boolean; isInputType: boolean; isEnum: boolean; } export interface Type { fields: Field[]; description: string; name: string; isInputType: boolean; interfaces: string[]; hasFields: boolean; hasInterfaces: boolean; } export interface Scalar { name: string; description: string; } export interface Enum { name: string; description: string; values: EnumValue[]; } export interface EnumValue { name: string; value: string; description: string; } export interface Union { name: string; description: string; possibleTypes: string[]; } export interface Interface { name: string; description: string; fields: Field[]; hasFields: boolean; } export interface SchemaTemplateContext { types: Type[]; inputTypes: Type[]; enums: Enum[]; unions: Union[]; interfaces: Interface[]; scalars: Scalar[]; hasTypes: boolean; hasInputTypes: boolean; hasEnums: boolean; hasUnions: boolean; hasScalars: boolean; hasInterfaces: boolean; } export interface SelectionSetItem { isFragmentSpread: boolean; isInlineFragment: boolean; isField: boolean; isLeaf: boolean; } export interface SelectionSetInlineFragment extends SelectionSetItem { selectionSet: SelectionSetItem[]; onType: string; fields: SelectionSetFieldNode[]; fragmentsSpread: SelectionSetFragmentSpread[]; inlineFragments: SelectionSetInlineFragment[]; hasFragmentsSpread: boolean; hasInlineFragments: boolean; hasFields: boolean; } export interface SelectionSetFragmentSpread extends SelectionSetItem { fragmentName: string; } export interface SelectionSetFieldNode extends SelectionSetItem { selectionSet: SelectionSetItem[]; name: string; type: string; isRequired: boolean; isArray: boolean; fields: SelectionSetFieldNode[]; fragmentsSpread: SelectionSetFragmentSpread[]; inlineFragments: SelectionSetInlineFragment[]; hasFragmentsSpread: boolean; hasInlineFragments: boolean; hasFields: boolean; } export declare function isFieldNode(node: SelectionSetItem): node is SelectionSetFieldNode; export declare function isFragmentSpreadNode(node: SelectionSetItem): node is SelectionSetFragmentSpread; export declare function isInlineFragmentNode(node: SelectionSetItem): node is SelectionSetInlineFragment; export interface Fragment { name: string; selectionSet: SelectionSetItem[]; onType: string; document: string; } export interface Operation { name: string; selectionSet: SelectionSetItem[]; operationType: string; variables: Variable[]; hasVariables: boolean; isQuery: boolean; isMutation: boolean; isSubscription: boolean; document: string; } export interface Variable { name: string; type: string; isRequired: boolean; isArray: boolean; } export interface Document { fragments: Fragment[]; operations: Operation[]; hasFragments: boolean; hasOperations: boolean; }