import { GraphQLObjectType, GraphQLObjectTypeExtensions, GraphQLSchema } from 'graphql'; import { FieldMetadata, GetTypeFunction, TypeValue } from './types'; import { EntityMetadata, MetadataType } from './metadata'; export type GraphweaverSchemaExtension = Readonly> & { graphweaverSchemaInfo: GraphweaverSchemaInfoExtensionWithSourceEntity | GraphweaverOtherSchemaInfoExtension; }; export type GraphweaverOtherSchemaInfoExtension = { type: 'deleteOneFilterInput' | 'aggregationResult' | 'customInput'; }; export type GraphweaverSchemaInfoExtensionWithSourceEntity = { type: 'entity' | 'paginationInput' | 'createOrUpdateInput' | 'updateInput' | 'createInput' | 'filterInput' | 'createOne' | 'createMany' | 'updateOne' | 'updateMany' | 'createOrUpdateMany' | 'deleteOne' | 'deleteMany'; sourceEntity: EntityMetadata; }; type EntityFilter = (entity: EntityMetadata) => boolean; export declare const getFieldTypeWithMetadata: (getType: GetTypeFunction) => { fieldType: TypeValue; isList: boolean; metadata?: MetadataType; }; export declare const getFieldType: (field: FieldMetadata) => TypeValue; export declare const isGraphQLScalarForTypeScriptType: (type: TypeValue) => boolean; export declare const graphQLTypeForEntity: (entity: EntityMetadata, entityFilter: EntityFilter | undefined) => GraphQLObjectType; type SchemaBuildOptions = { schemaDirectives?: Record; filterEntities?: (entity: EntityMetadata) => boolean; }; declare class SchemaBuilderImplementation { build(buildOptions?: SchemaBuildOptions): GraphQLSchema; print(buildOptions?: SchemaBuildOptions): string; isValidFilterOperation(filterOperation: string): boolean; private buildTypes; private graphQLTypeForArgs; private buildQueryType; private buildMutationType; private buildDirectives; } export declare const SchemaBuilder: SchemaBuilderImplementation; export {};