import { ArgsBuilder, ArgsBuilderData } from '../args'; import { OpValue, OpBuilderValue, OpBuilderTypes, BuiltOpTypes } from '../operator'; import { ParamBuilder, ParamNameGen } from '../param'; import { Edge } from './edge'; import { GenericRawProjection, GenericProjection } from './common'; import { DirectiveBuilder } from '../directive'; import { Runnable } from '../types'; import { FieldBuilder, CustomFieldBuilder, BuildFieldArgs } from '../field'; import { AggregationBuilder } from '../aggregation'; export declare type RawProjection = GenericRawProjection; export declare type Projection = GenericProjection; export interface NameGenerators { param: ParamNameGen; } export interface BuildEdgeArgs extends BuildFieldArgs { nameGen?: NameGenerators; } export declare const defaultNameGen: () => NameGenerators; /** should match EdgeBuilder's constructor */ export interface EdgeBuilderConstructor { (edges?: EdgeBuilder | RawProjection): EdgeBuilder; (type: string, edges?: EdgeBuilder | RawProjection): EdgeBuilder; } export declare class EdgeBuilder extends FieldBuilder { protected type?: string; protected _autoType?: boolean; protected edges: Projection; protected directives: Record; protected args: ArgsBuilder; constructor(type?: string | EdgeBuilder | RawProjection, edges?: EdgeBuilder | RawProjection); protected setEdges(edges: EdgeBuilder | RawProjection, overwrite?: boolean): this; merge(edge: EdgeBuilder | FieldBuilder, overwrite?: boolean): this; /** set field name */ name(name: string): this; get autoType(): boolean; setAutoType(flag?: boolean): this; withArgs(args: ArgsBuilder | Omit): this; first(val: ArgsBuilderData['first']): this; offset(val: ArgsBuilderData['offset']): this; after(val: ArgsBuilderData['after']): this; protected buildParam(builder: ParamBuilder, pNameGen: ParamNameGen): import("../param").Param; protected buildOpValue(value: (OpBuilderValue | OpBuilderValue[]), nameGen: NameGenerators): OpValue | OpValue[]; protected buildOp(op: T, nameGen: NameGenerators): BuiltOpTypes; filter(opBuilder: OpBuilderTypes): this; cascade(): this; keyToField(key: string): string; protected buildEdgeArgs(name: string, nameGen?: NameGenerators): { name: string; args: import("../args").Args; edges: {}; varName: string; directives: {}; }; build(args?: Partial): Edge | Runnable; /** * build and stringify */ toString(extraDepth?: number): string; }