import { GQLElement } from "../../classes"; import { GraphQLDirective, DirectiveLocationEnum, DirectiveDefinitionNode } from "graphql"; import { Arg } from ".."; import { Removable } from "../.."; export declare class DirectiveDefinition extends GQLElement { private _locations; private _args; private _isRepeatable; get args(): Arg[]; get locations(): ("QUERY" | "MUTATION" | "SUBSCRIPTION" | "FIELD" | "FRAGMENT_DEFINITION" | "FRAGMENT_SPREAD" | "INLINE_FRAGMENT" | "VARIABLE_DEFINITION" | "SCHEMA" | "SCALAR" | "OBJECT" | "FIELD_DEFINITION" | "ARGUMENT_DEFINITION" | "INTERFACE" | "UNION" | "ENUM" | "ENUM_VALUE" | "INPUT_OBJECT" | "INPUT_FIELD_DEFINITION")[]; get isRepeatable(): boolean; get definitionNode(): DirectiveDefinitionNode; protected constructor(name: string); static create(name: string): DirectiveDefinition; build(): GraphQLDirective; setLocations(...locations: DirectiveLocationEnum[]): this; addLocations(...locations: DirectiveLocationEnum[]): this; removeLocations(...locations: DirectiveLocationEnum[]): this; setIsRepeatable(isRepeatable: boolean): this; setArgs(...args: Arg[]): this; /** * Add some arguments in the type * @param name The argument name * @param type The argument type */ addArgs(...args: Arg[]): this; /** * Remove some arguments in the type * @param args The argument IDs */ removeArgs(...args: Removable>): this; }