import { DEFAULT_SCALARS } from "tt-model"; export declare enum Kind { INPUT_OBJECT = 0, OUTPUT_OBJECT = 1, INPUT_RESOLVERS = 2, OUTPUT_RESOLVERS = 3, INPUT_FIELD = 4, OUTPUT_FIELD = 5, PARAM = 6, ENUM = 7, ENUM_MEMBER = 8, LIST = 9, UNION = 10, SCALAR = 11, BASIC_SCALAR = 12, REF = 13, FORMATTED_OUTPUT_OBJECT = 14, FORMATTED_INPUT_OBJECT = 15, CONVERTER = 16, FUNCTION_EXPRESSION = 17 } export declare type Node = InputObject | OutputObject | Enum | Union | Scalar | BasicScalar; export declare type InputNode = InputObject | Enum | Union | Scalar | BasicScalar; export declare type OutputNode = OutputObject | Enum | Union | Scalar | BasicScalar; export declare type AllNodes = Node | InputField | OutputField | List | Reference | Param | ConvertObj | FunctionExpr; export interface _Node { kind: Kind; name: string; jsDoc: string[]; deprecated: string | undefined; fileNames: String[]; } export interface OutputObject extends _Node { kind: Kind.OUTPUT_OBJECT; escapedName: string | undefined; inherit: string[] | undefined; orderByName: boolean | undefined; fields: Map; wrappers: MethodDescM[] | undefined; before: MethodDescM[] | undefined; after: MethodDescM[] | undefined; ownedFieldsCount: number; convert: ConvertObj | undefined; } export interface InputObject extends Omit { kind: Kind.INPUT_OBJECT; fields: Map; } export interface ConvertObj extends MethodDescM { kind: Kind.CONVERTER; type: Reference | undefined; } interface _Field extends _Node { idx: number; className: string | undefined; alias: string | undefined; required: boolean; type: FieldType; defaultValue: any; } export interface InputField extends _Field { kind: Kind.INPUT_FIELD; asserts: AssertOptions | undefined; pipe: MethodDescriptor[]; validators: string[]; } export interface OutputField extends _Field { kind: Kind.OUTPUT_FIELD; method: MethodDescriptor | undefined; param: Param | undefined; resolvers: string[]; } export interface MethodDescM { fileName: string; className: string; name: string | undefined; isAsync: boolean; } export interface MethodDescriptor extends MethodDescM { isStatic: boolean; isClass: boolean; } export interface List extends Omit<_Node, 'name'> { kind: Kind.LIST; required: boolean; type: FieldType; } export interface Enum extends _Node { kind: Kind.ENUM; members: EnumMember[]; escapedName: string; } export interface EnumMember extends _Node { kind: Kind.ENUM_MEMBER; value: string | number; } export interface Union extends _Node { kind: Kind.UNION; types: Reference[]; parser: MethodDescriptor | undefined; escapedName: string; } export interface AssertOptions { min?: string; max?: string; lt?: string; gt?: string; lte?: string; gte?: string; eq?: string; ne?: string; length?: string; regex?: RegExp; } export interface Scalar extends _Node { kind: Kind.SCALAR; parser: MethodDescriptor; escapedName: string; } export interface BasicScalar extends _Node { kind: Kind.BASIC_SCALAR; name: typeof DEFAULT_SCALARS[number]; escapedName: string; } export interface Reference { kind: Kind.REF; name: string; fileName: string; } export declare type FieldType = List | Reference; export interface Param extends _Node { kind: Kind.PARAM; type: Reference | undefined; } export interface RootConfig { before: MethodDescM[]; after: MethodDescM[]; wrappers: MethodDescM[]; } export interface FunctionExpr extends _Node { kind: Kind.FUNCTION_EXPRESSION; fileName: string; name: string; isAsync: boolean; param: Param | undefined; required: boolean; type: FieldType; } export {};