import 'gatsby'; import * as GraphQL from 'gatsby/graphql'; declare module 'gatsby' { type IGraphQLTypeMap = { [k: string]: GraphQL.GraphQLFieldConfig | IGraphQLTypeMap; }; type IRootGraphQLTypeMap = { // ensure Query isn't resolved directly Query?: IGraphQLTypeMap; } & IGraphQLTypeMap; export type ICreateResolversFn = (typeMap: IRootGraphQLTypeMap) => void; export type PatchedPluginOptions = Pick< PluginOptions, 'plugins' > & TCustomPluginOpts; export interface CreateResolversArgsPatched extends ParentSpanPluginArgs { intermediateSchema: object; createResolvers: ICreateResolversFn; traceId: 'initial-createResolvers'; } export type IOnCreateNodeHook = ( args: CreateNodeArgs, options: PatchedPluginOptions, ) => void; export type ICreateSchemaCustomizationHook = ( args: CreateSchemaCustomizationArgs, options: PatchedPluginOptions, ) => any; export type ICreateResolversHook = ( args: CreateResolversArgsPatched, options: PatchedPluginOptions, ) => void; export interface GatsbyNode { createResolvers?: ICreateResolversFn; onCreateNode?: IOnCreateNodeHook; createSchemaCustomization?: ICreateSchemaCustomizationHook; } }