import type { GraphQLSchema } from 'graphql'; import { TsGqlError } from '../errors'; import { type TypeGenAddonFactory, type TypeGenVisitorAddonContext } from '../typegen'; import { type OutputSource, type StrictTagCondition } from '../ts-ast-util'; import type { Extractor, ExtractSucceededResult } from './extractor'; export type TypeGeneratorOptions = { prjRootPath: string; extractor: Extractor; debug: (msg: string) => void; tag: StrictTagCondition; addonFactories: TypeGenAddonFactory[]; }; export declare class TypeGenerator { private readonly _prjRootPath; private readonly _extractor; private readonly _tag; private readonly _addonFactories; private readonly _debug; private readonly _printer; constructor({ prjRootPath, extractor, tag, addonFactories, debug }: TypeGeneratorOptions); createAddon({ schema, fileEntry, outputSource, }: { schema: GraphQLSchema; fileEntry: ExtractSucceededResult; outputSource: OutputSource; }): { addon: { customScalar: (input: import("..").CustomScalarInput) => import("..").CustomScalarOutput; document: (input: import("..").DocumentInput) => void; operationDefinition: (input: import("..").OperationDefinionInput) => void; fragmentDefinition: (input: import("..").FragmentDefinitionInput) => void; }; context: TypeGenVisitorAddonContext; }; generateTypes({ files, schema }: { files: string[]; schema: GraphQLSchema; }): { errors: TsGqlError[]; outputSourceFiles: { fileName: string; content: string; }[]; }; }