import Maybe from '../tsutils/Maybe'; import { DirectiveLocationEnum } from '../language/directiveLocation'; export interface IntrospectionOptions { // Whether to include descriptions in the introspection result. // Default: true descriptions: boolean; // Whether to include `isRepeatable` flag on directives. // Default: false directiveIsRepeatable?: boolean; } export function getIntrospectionQuery(options?: IntrospectionOptions): string; export interface IntrospectionQuery { readonly __schema: IntrospectionSchema; } export interface IntrospectionSchema { readonly queryType: IntrospectionNamedTypeRef; readonly mutationType: Maybe< IntrospectionNamedTypeRef >; readonly subscriptionType: Maybe< IntrospectionNamedTypeRef >; readonly types: ReadonlyArray; readonly directives: ReadonlyArray; } export type IntrospectionType = | IntrospectionScalarType | IntrospectionObjectType | IntrospectionInterfaceType | IntrospectionUnionType | IntrospectionEnumType | IntrospectionInputObjectType; export type IntrospectionOutputType = | IntrospectionScalarType | IntrospectionObjectType | IntrospectionInterfaceType | IntrospectionUnionType | IntrospectionEnumType; export type IntrospectionInputType = | IntrospectionScalarType | IntrospectionEnumType | IntrospectionInputObjectType; export interface IntrospectionScalarType { readonly kind: 'SCALAR'; readonly name: string; readonly description?: Maybe; } export interface IntrospectionObjectType { readonly kind: 'OBJECT'; readonly name: string; readonly description?: Maybe; readonly fields: ReadonlyArray; readonly interfaces: ReadonlyArray< IntrospectionNamedTypeRef >; } export interface IntrospectionInterfaceType { readonly kind: 'INTERFACE'; readonly name: string; readonly description?: Maybe; readonly fields: ReadonlyArray; readonly interfaces: ReadonlyArray< IntrospectionNamedTypeRef >; readonly possibleTypes: ReadonlyArray< IntrospectionNamedTypeRef >; } export interface IntrospectionUnionType { readonly kind: 'UNION'; readonly name: string; readonly description?: Maybe; readonly possibleTypes: ReadonlyArray< IntrospectionNamedTypeRef >; } export interface IntrospectionEnumType { readonly kind: 'ENUM'; readonly name: string; readonly description?: Maybe; readonly enumValues: ReadonlyArray; } export interface IntrospectionInputObjectType { readonly kind: 'INPUT_OBJECT'; readonly name: string; readonly description?: Maybe; readonly inputFields: ReadonlyArray; } export interface IntrospectionListTypeRef< T extends IntrospectionTypeRef = IntrospectionTypeRef > { readonly kind: 'LIST'; readonly ofType: T; } export interface IntrospectionNonNullTypeRef< T extends IntrospectionTypeRef = IntrospectionTypeRef > { readonly kind: 'NON_NULL'; readonly ofType: T; } export type IntrospectionTypeRef = | IntrospectionNamedTypeRef | IntrospectionListTypeRef | IntrospectionNonNullTypeRef< IntrospectionNamedTypeRef | IntrospectionListTypeRef >; export type IntrospectionOutputTypeRef = | IntrospectionNamedTypeRef | IntrospectionListTypeRef | IntrospectionNonNullTypeRef< | IntrospectionNamedTypeRef | IntrospectionListTypeRef >; export type IntrospectionInputTypeRef = | IntrospectionNamedTypeRef | IntrospectionListTypeRef | IntrospectionNonNullTypeRef< | IntrospectionNamedTypeRef | IntrospectionListTypeRef >; export interface IntrospectionNamedTypeRef< T extends IntrospectionType = IntrospectionType > { readonly kind: T['kind']; readonly name: string; } export interface IntrospectionField { readonly name: string; readonly description?: Maybe; readonly args: ReadonlyArray; readonly type: IntrospectionOutputTypeRef; readonly isDeprecated: boolean; readonly deprecationReason?: Maybe; } export interface IntrospectionInputValue { readonly name: string; readonly description?: Maybe; readonly type: IntrospectionInputTypeRef; readonly defaultValue?: Maybe; } export interface IntrospectionEnumValue { readonly name: string; readonly description?: Maybe; readonly isDeprecated: boolean; readonly deprecationReason?: Maybe; } export interface IntrospectionDirective { readonly name: string; readonly description?: Maybe; readonly isRepeatable?: boolean; readonly locations: ReadonlyArray; readonly args: ReadonlyArray; }