import { TSClassDeclaration, TSEnumDeclaration, TSFile, TSMethodDeclaration, TSParameterDeclaration, TSPropertyDeclaration, TSPropertySignature, TSTypeAliasDeclaration, TSTypeLiteral } from '@yesness/ts-parser'; import { MyGraphQLType } from '../graphQLTypes'; export * as InputTypes from '../core/types'; export declare type IDocument = { objects: Record; enums: Record; }; export declare type IObject = { name: string; fields: Record; tags: Record; node: { type: 'class'; tsClass: TSClassDeclaration; } | { type: 'type'; tsTypeAlias: TSTypeAliasDeclaration; }; }; export declare type IEnum = { name: string; values: string[]; tsEnum: TSEnumDeclaration; }; export declare type IField = { name: string; type: MyGraphQLType; parameters: IFieldParameter[]; fieldType: { type: 'method'; async: boolean; node: TSMethodDeclaration; } | { type: 'property'; }; tags: Record; }; export declare type IFieldParameter = { name: string; type: MyGraphQLType; schemaType: MyGraphQLType | null; }; export declare class ParseClassesUtil { static getProperties(object: IObject): Array; static getTypeLiteral(tsType: TSTypeAliasDeclaration): TSTypeLiteral; static getFile(member: IObject | IEnum): TSFile; static isMutationField(field: IField): boolean; static calculateDependencies(objects: Record): Record; }