import type { ResolverDecorator, TypeDefs } from "../../types.js"; import type { Dependency } from "@webiny/di"; import type { IGraphQLSchema } from "../../graphql/abstractions.public.js"; export interface ResolverConfig { path: string; dependencies?: Dependency[]; resolver: (...resolvedDeps: any[]) => (params: { parent: TParent; args: TArgs; context: any; info: any; }) => any; } export interface IGraphQLSchemaBuilder { addTypeDefs(typeDefs: TypeDefs): this; addResolver(config: ResolverConfig): this; /** * @internal This method needs revisiting, to align with DI concepts. */ addResolverDecorator(path: string, decorator: ResolverDecorator): this; build(): IGraphQLSchema; } export declare const GraphQLSchemaBuilder: import("@webiny/di").Abstraction; export declare namespace GraphQLSchemaBuilder { type Interface = IGraphQLSchemaBuilder; type Config = ResolverConfig; } export interface IGraphQLSchemaComposer { build(): Promise; } export declare const GraphQLSchemaComposer: import("@webiny/di").Abstraction; export declare namespace GraphQLSchemaComposer { type Interface = IGraphQLSchemaComposer; }