import { GraphQLObjectType, ObjectTypeDefinitionNode } from "graphql"; import { InterfaceType, InputType, ClassType, Removable } from "../../../.."; import { GQLObjectType } from "./GQLObjectType"; export declare class ObjectType extends GQLObjectType { private _interfaces; get interfaces(): InterfaceType[]; get definitionNode(): ObjectTypeDefinitionNode; protected constructor(name: string); /** * Create a new ObjectType */ static create(name: string): ObjectType>; static create(classType: T): ObjectType; static create(inputType: InputType): ObjectType>; static create(objectType: ObjectType): ObjectType>; static create(interfaceType: InterfaceType): ObjectType>; build(): GraphQLObjectType; /** * The interfaces to implement * @param interfaces */ setInterfaces(...interfaces: InterfaceType[]): this; /** * Add some interfaces to implement * @param interfaces the interfaces to implements */ addInterfaces(...interfaces: InterfaceType[]): this; /** * Remove some interfaces from implementation * @param interfaces the interfaces ID's to remove */ removeInterfaces(...interfaces: Removable): this; /** * Add a suffix to the name of your type ("ObjectType" by default) * @param suffix The suffix to add to the name */ suffix(suffix?: string): this; copy(): ObjectType; convert(to: typeof InputType): InputType; convert(to: typeof InterfaceType): InterfaceType; }