/* eslint-disable @typescript-eslint/no-redeclare */ import './types/global'; import SchemaBuilderClass from './builder'; import InternalFieldBuilder from './fieldUtils/builder'; import InternalInputFieldBuilder from './fieldUtils/input'; import InternalInterfaceFieldBuilder from './fieldUtils/interface'; import InternalMutationFieldBuilder from './fieldUtils/mutation'; import InternalObjectFieldBuilder from './fieldUtils/object'; import InternalQueryFieldBuilder from './fieldUtils/query'; import InternalRootFieldBuilder from './fieldUtils/root'; import InternalSubscriptionFieldBuilder from './fieldUtils/subscription'; import InternalBaseTypeRef from './refs/base'; import InternalEnumRef from './refs/enum'; import InternalInputObjectRef from './refs/input-object'; import InternalInterfaceRef from './refs/interface'; import InternalObjectRef from './refs/object'; import InternalScalarRef from './refs/scalar'; import InternalUnionRef from './refs/union'; import { FieldKind, NormalizeSchemeBuilderOptions, SchemaTypes } from './types'; export * from './plugins'; export * from './types'; export * from './utils'; const SchemaBuilder = SchemaBuilderClass as unknown as { registerPlugin: typeof SchemaBuilderClass.registerPlugin; allowPluginReRegistration: boolean; new = {}>( options: NormalizeSchemeBuilderOptions>, ): GiraphQLSchemaTypes.SchemaBuilder>; }; export default SchemaBuilder; export type FieldBuilder< Types extends SchemaTypes, ParentShape, Kind extends 'Interface' | 'Object' = 'Interface' | 'Object', > = GiraphQLSchemaTypes.FieldBuilder; export const FieldBuilder = InternalFieldBuilder as new < Types extends SchemaTypes, ParentShape, Kind extends 'Interface' | 'Object' = 'Interface' | 'Object', >( name: string, ) => GiraphQLSchemaTypes.FieldBuilder; export type RootFieldBuilder< Types extends SchemaTypes, ParentShape, Kind extends FieldKind = FieldKind, > = GiraphQLSchemaTypes.RootFieldBuilder; export const RootFieldBuilder = InternalRootFieldBuilder as new < Types extends SchemaTypes, ParentShape, Kind extends FieldKind = FieldKind, >( name: string, builder: SchemaBuilderClass, kind: FieldKind, graphqlKind: GiraphQLSchemaTypes.GiraphQLKindToGraphQLType[FieldKind], ) => GiraphQLSchemaTypes.RootFieldBuilder; export type QueryFieldBuilder< Types extends SchemaTypes, ParentShape, > = GiraphQLSchemaTypes.QueryFieldBuilder; export const QueryFieldBuilder = InternalQueryFieldBuilder as new < Types extends SchemaTypes, ParentShape, >( builder: SchemaBuilderClass, ) => GiraphQLSchemaTypes.QueryFieldBuilder; export type MutationFieldBuilder< Types extends SchemaTypes, ParentShape, > = GiraphQLSchemaTypes.MutationFieldBuilder; export const MutationFieldBuilder = InternalMutationFieldBuilder as new < Types extends SchemaTypes, ParentShape, >( builder: SchemaBuilderClass, ) => GiraphQLSchemaTypes.MutationFieldBuilder; export type SubscriptionFieldBuilder< Types extends SchemaTypes, ParentShape, > = GiraphQLSchemaTypes.SubscriptionFieldBuilder; export const SubscriptionFieldBuilder = InternalSubscriptionFieldBuilder as new < Types extends SchemaTypes, ParentShape, >( builder: SchemaBuilderClass, ) => GiraphQLSchemaTypes.SubscriptionFieldBuilder; export type ObjectFieldBuilder< Types extends SchemaTypes, ParentShape, > = GiraphQLSchemaTypes.ObjectFieldBuilder; export const ObjectFieldBuilder = InternalObjectFieldBuilder as new < Types extends SchemaTypes, ParentShape, >( name: string, builder: SchemaBuilderClass, ) => GiraphQLSchemaTypes.ObjectFieldBuilder; export type InterfaceFieldBuilder< Types extends SchemaTypes, ParentShape, > = GiraphQLSchemaTypes.InterfaceFieldBuilder; export const InterfaceFieldBuilder = InternalInterfaceFieldBuilder as new < Types extends SchemaTypes, ParentShape, >( name: string, builder: SchemaBuilderClass, ) => GiraphQLSchemaTypes.InterfaceFieldBuilder; export type InputFieldBuilder< Types extends SchemaTypes, Kind extends 'Arg' | 'InputObject' = 'Arg' | 'InputObject', > = GiraphQLSchemaTypes.InputFieldBuilder; export const InputFieldBuilder = InternalInputFieldBuilder as new < Types extends SchemaTypes, Kind extends 'Arg' | 'InputObject' = 'Arg' | 'InputObject', >( builder: SchemaBuilderClass, kind: Kind, typename: string, ) => GiraphQLSchemaTypes.InputFieldBuilder; export type BaseTypeRef = GiraphQLSchemaTypes.BaseTypeRef; export const BaseTypeRef = InternalBaseTypeRef as new ( kind: 'Enum' | 'InputObject' | 'Interface' | 'Object' | 'Scalar' | 'Union', name: string, ) => GiraphQLSchemaTypes.BaseTypeRef; export type EnumRef = GiraphQLSchemaTypes.EnumRef; export const EnumRef = InternalEnumRef as new ( name: string, ) => GiraphQLSchemaTypes.EnumRef; export type InputObjectRef = GiraphQLSchemaTypes.InputObjectRef; export const InputObjectRef = InternalInputObjectRef as new ( name: string, ) => GiraphQLSchemaTypes.InputObjectRef; export type InterfaceRef = GiraphQLSchemaTypes.InterfaceRef; export const InterfaceRef = InternalInterfaceRef as new ( name: string, ) => GiraphQLSchemaTypes.InterfaceRef; export type ObjectRef = GiraphQLSchemaTypes.ObjectRef; export const ObjectRef = InternalObjectRef as new ( name: string, ) => GiraphQLSchemaTypes.ObjectRef; export type ScalarRef = GiraphQLSchemaTypes.ScalarRef; export const ScalarRef = InternalScalarRef as new ( name: string, ) => GiraphQLSchemaTypes.ScalarRef; export type UnionRef = GiraphQLSchemaTypes.UnionRef; export const UnionRef = InternalUnionRef as new ( name: string, ) => GiraphQLSchemaTypes.UnionRef; export { default as BuildCache } from './build-cache'; export { default as BuiltinScalarRef } from './refs/builtin-scalar'; export { default as FieldRef } from './refs/field'; export { default as InputTypeRef } from './refs/input'; export { default as InputFieldRef } from './refs/input-field'; export { ImplementableInputObjectRef } from './refs/input-object'; export { ImplementableInterfaceRef } from './refs/interface'; export { ImplementableObjectRef } from './refs/object'; export { default as OutputTypeRef } from './refs/output';