import { GraphQLField, GraphQLInputField } from "graphql"; import { FieldType, InputFieldType, RequiredType } from "../.."; import { GQLElement } from "../../classes/GQLElement"; import { NullableType } from "../modifiers/Nullable"; export declare abstract class GQLField extends GQLElement { protected _type: FieldType | InputFieldType; protected _deprecationReason: string; protected _description: string; get type(): StringConstructor | BooleanConstructor | NumberConstructor | DateConstructor | import("graphql").GraphQLScalarType | import("../..").GQLObjectType | import("../..").EnumType | import("../..").UnionType | FieldType[] | import("../..").ClassType | RequiredType | NullableType | import("../..").InputType | import("../..").EnumType | InputFieldType[] | import("../..").ClassType | RequiredType | NullableType; get description(): string; get deprecationReason(): string; constructor(name: NameType & string, type: FieldType | InputFieldType); abstract build(): GraphQLField | GraphQLInputField; abstract copy(): GQLField; /** * Set the field type * @param type the type of your field */ setType(type: FieldType | InputFieldType): this; /** * Set the description of the field * @param deprecationReason The deprecation reason */ setDescription(description: string): this; /** * Set the deprecation reason of the field * @param deprecationReason The deprecation reason */ setDeprecationReason(deprecationReason: string): this; /** * Convert your field type into a nullable type */ nullable(): this; /** * Convert your field type into a not nullable type */ required(): this; }