import { DirectiveNode, NamedTypeNode } from "graphql"; import type { RelationField, ConnectionField, CypherField, PrimitiveField, CustomEnumField, CustomScalarField, UnionField, InterfaceField, ObjectField, TemporalField, PointField, Auth, BaseField, Context, FullText } from "../types"; import Exclude from "./Exclude"; import { GraphElement, GraphElementConstructor } from "./GraphElement"; import { NodeDirective } from "./NodeDirective"; export interface NodeConstructor extends GraphElementConstructor { name: string; relationFields: RelationField[]; connectionFields: ConnectionField[]; cypherFields: CypherField[]; primitiveFields: PrimitiveField[]; scalarFields: CustomScalarField[]; enumFields: CustomEnumField[]; otherDirectives: DirectiveNode[]; unionFields: UnionField[]; interfaceFields: InterfaceField[]; interfaces: NamedTypeNode[]; objectFields: ObjectField[]; temporalFields: TemporalField[]; pointFields: PointField[]; ignoredFields: BaseField[]; auth?: Auth; fulltextDirective?: FullText; exclude?: Exclude; nodeDirective?: NodeDirective; description?: string; } declare type MutableField = PrimitiveField | CustomScalarField | CustomEnumField | UnionField | ObjectField | TemporalField | PointField | CypherField; declare type AuthableField = PrimitiveField | CustomScalarField | CustomEnumField | UnionField | ObjectField | TemporalField | PointField | CypherField; declare type SortableField = PrimitiveField | CustomScalarField | CustomEnumField | TemporalField | PointField | CypherField; declare type ConstrainableField = PrimitiveField | TemporalField | PointField; declare class Node extends GraphElement { relationFields: RelationField[]; connectionFields: ConnectionField[]; cypherFields: CypherField[]; otherDirectives: DirectiveNode[]; unionFields: UnionField[]; interfaceFields: InterfaceField[]; interfaces: NamedTypeNode[]; objectFields: ObjectField[]; exclude?: Exclude; nodeDirective?: NodeDirective; fulltextDirective?: FullText; auth?: Auth; description?: string; constructor(input: NodeConstructor); get mutableFields(): MutableField[]; /** Fields you can apply auth allow and bind to */ get authableFields(): AuthableField[]; /** Fields you can sort on */ get sortableFields(): SortableField[]; get constrainableFields(): ConstrainableField[]; get uniqueFields(): ConstrainableField[]; getLabelString(context: Context): string; getLabels(context: Context): string[]; getMainLabel(): string; getPlural(options: { camelCase: boolean; }): string; } export default Node; //# sourceMappingURL=Node.d.ts.map