import { _Node, NodeConstructor } from './Node'; import { NonEmpty } from './NonEmpty'; import { Element } from './Element'; import { process } from 'gremlin'; import { Id, PropertiesDefinition } from './PropertiesDefinition'; import { Find } from './ObjectStep'; declare type GraphTraversal = process.GraphTraversal; declare type GraphTraversalSource = process.GraphTraversalSource; export declare type EdgeConstructor, InNodeD extends PropertiesDefinition, InNode extends _Node, OutNodeD extends PropertiesDefinition, OutNode extends _Node> = { byId>(this: EdgeConstructor, g: GraphTraversalSource, ids: NonEmpty): Edge; find>(this: EdgeConstructor, g: GraphTraversalSource, filter?: Find): Edge; inNodeClass: NodeConstructor; outNodeClass: NodeConstructor; new (g: GraphTraversal, _ts?: EdgeD): Edge; }; export declare abstract class _Edge, OutNodeD extends PropertiesDefinition, OutNode extends _Node> extends Element { private readonly outNodeClass; private readonly inNodeClass; protected constructor(q: GraphTraversal, properties: D, outNodeClass: NodeConstructor, inNodeClass: NodeConstructor); static byId, InNodeD extends PropertiesDefinition, InNode extends _Node, OutNodeD extends PropertiesDefinition, OutNode extends _Node>(this: EdgeConstructor, g: GraphTraversalSource, ids: NonEmpty): Edge; static find, InNodeD extends PropertiesDefinition, InNode extends _Node, OutNodeD extends PropertiesDefinition, OutNode extends _Node>(this: EdgeConstructor, g: GraphTraversalSource, filter?: Find): Edge; outNode(): OutNode; inNode(): InNode; protected querySetProperty(property: K, value: unknown): void; } export declare const Edge: , InNodeD extends PropertiesDefinition, InNode extends _Node>(properties: EdgeD, outNodeClass: NodeConstructor, inNodeClass: NodeConstructor) => EdgeConstructor, InNodeD, InNode, OutNodeD, OutNode>; export {};