import { GraphQLSchema, GraphQLField, GraphQLInputField, GraphQLObjectType, GraphQLInputObjectType, GraphQLUnionType, GraphQLScalarType, GraphQLArgument, GraphQLEnumType, GraphQLEnumValue, GraphQLInterfaceType } from 'graphql'; export declare type ExtensionsObject = Record; export declare type ObjectTypeExtensions = { type: 'object'; fields: Record; }>; }; export declare type InputTypeExtensions = { type: 'input'; fields: Record; }; export declare type InterfaceTypeExtensions = { type: 'interface'; fields: Record; }>; }; export declare type UnionTypeExtensions = { type: 'union'; }; export declare type ScalarTypeExtensions = { type: 'scalar'; }; export declare type EnumTypeExtensions = { type: 'enum'; values: Record; }; export declare type PossibleTypeExtensions = InputTypeExtensions | InterfaceTypeExtensions | ObjectTypeExtensions | UnionTypeExtensions | ScalarTypeExtensions | EnumTypeExtensions; export declare type SchemaExtensions = { schemaExtensions: ExtensionsObject; types: Record; }; export declare function travelSchemaPossibleExtensions(schema: GraphQLSchema, hooks: { onSchema: (schema: GraphQLSchema) => any; onObjectType: (type: GraphQLObjectType) => any; onObjectField: (type: GraphQLObjectType, field: GraphQLField) => any; onObjectFieldArg: (type: GraphQLObjectType, field: GraphQLField, arg: GraphQLArgument) => any; onInterface: (type: GraphQLInterfaceType) => any; onInterfaceField: (type: GraphQLInterfaceType, field: GraphQLField) => any; onInterfaceFieldArg: (type: GraphQLInterfaceType, field: GraphQLField, arg: GraphQLArgument) => any; onInputType: (type: GraphQLInputObjectType) => any; onInputFieldType: (type: GraphQLInputObjectType, field: GraphQLInputField) => any; onUnion: (type: GraphQLUnionType) => any; onScalar: (type: GraphQLScalarType) => any; onEnum: (type: GraphQLEnumType) => any; onEnumValue: (type: GraphQLEnumType, value: GraphQLEnumValue) => any; }): void; export declare function mergeExtensions(extensions: SchemaExtensions[]): SchemaExtensions; export declare function applyExtensions(schema: GraphQLSchema, extensions: SchemaExtensions): GraphQLSchema; export declare function extractExtensionsFromSchema(schema: GraphQLSchema): SchemaExtensions;