import { NonEmpty } from './NonEmpty'; import { Element, Insert } from './Element'; import { process } from 'gremlin'; import { _Edge, EdgeConstructor } from './Edge'; import { NodeToEdge } from './NodeToEdge'; import { Id, PropertiesDefinition } from './PropertiesDefinition'; import { Find } from './ObjectStep'; declare type GraphTraversal = process.GraphTraversal; declare type GraphTraversalSource = process.GraphTraversalSource; declare type Statics = process.Statics; declare type TraversalStart = GraphTraversalSource | GraphTraversal | Statics; export declare type NodeConstructor> = { byId>(this: NodeConstructor, g: TraversalStart, ids: NonEmpty): Q; find>(this: NodeConstructor, g: TraversalStart, filter?: Find): Q; insert>(this: NodeConstructor, g: TraversalStart, properties: Insert): Q; new (g: GraphTraversal, _ts?: D): Node; }; export declare abstract class _Node extends Element { static byId>(this: NodeConstructor, g: TraversalStart, ids: NonEmpty): Q; static find>(this: NodeConstructor, g: TraversalStart, filter?: Find): Q; static insert>(this: NodeConstructor, g: TraversalStart, properties: Insert): Q; insert(properties: Insert): this; protected querySetProperty(property: K, value: unknown): void; protected outEdge, InNodeD extends PropertiesDefinition, InNode extends _Node, OutNode extends _Node>(E: EdgeConstructor): NodeToEdge; protected inEdge, InNode extends _Node, OutNodeD extends PropertiesDefinition, OutNode extends _Node>(E: EdgeConstructor): NodeToEdge; } export declare const Node: (properties: D) => NodeConstructor>; export {};