import { process } from 'gremlin'; import { ANY_PROPERTY, Id, ID, LABEL, MergePropertiesDefinitions, NonOptionalProperty, NonOptionalPropertyDefinition, OptionalPropertyDefinition, PrimitiveType, Properties, PropertiesDefinition, PropertiesForOutput, PropertyDefinition } from './PropertiesDefinition'; import Step, { ExtractStepValue, GetStepFunc } from './Step'; import type { IfTrue } from './utilityTypes'; import { AddMappedValueType, ArrayValueTypes } from './utilityTypes'; import ProjectStep from './ProjectStep'; import MapStep from './MapStep'; import { PropertyValueStep } from './PropertyValueStep'; declare type GraphTraversal = process.GraphTraversal; export declare const NO_PROPERTY: unique symbol; export declare type AnyProperties = D[typeof ANY_PROPERTY] extends NonOptionalPropertyDefinition ? T & Record, NonOptionalProperty | typeof NO_PROPERTY | AdditionalTypes> : Record, never>; export declare type Find = Partial, typeof ANY_PROPERTY>, process.P>> & AnyProperties & { [ID]?: Id | process.P; [LABEL]?: never; }; declare type ValueObjKey = Extract | IfTrue | IfTrue | (D[typeof ANY_PROPERTY] extends NonOptionalPropertyDefinition ? string : never); declare type ValueObjPropertiesDefinition[]> = ValueObjKeys extends [] | (typeof ID | typeof LABEL)[] ? D : { [K in Extract, string>]: K extends keyof D ? D[K] : D[typeof ANY_PROPERTY] extends NonOptionalPropertyDefinition ? OptionalPropertyDefinition : never; }; declare type NonAnyPropertyValueAccessor = { readonly [K in keyof D]: () => PropertyValueStep; }; declare type PropertyValueAccessor = D[typeof ANY_PROPERTY] extends NonOptionalPropertyDefinition ? NonAnyPropertyValueAccessor> & Record PropertyValueStep> : NonAnyPropertyValueAccessor; export declare class ObjectStep extends Step> { readonly properties: D; readonly includeId: IncludeId; readonly includeLabel: IncludeLabel; readonly value: PropertyValueAccessor; constructor(q: GraphTraversal, properties: D, includeId: IncludeId, includeLabel: IncludeLabel); valueObj[]>(...propertyKeys: Keys): ObjectStep, typeof ID extends ArrayValueTypes ? true : false, typeof LABEL extends ArrayValueTypes ? true : false>; find(filter?: Find): this; protected createPropertyValueStep

(propertyDefinition: P, requestedProperty: string): PropertyValueStep

; protected queryFindDoesNotHaveProperty(key: string): void; protected queryFindHasPropertyValue(key: string | typeof ID, value: PrimitiveType | process.P): void; protected queryValueObj(keys: string[], includeId: boolean, includeLabel: boolean): void; project(map: { [K in keyof M]: GetStepFunc; }): ProjectStep; groupByMap, ValueStep extends Step, KeyType = ExtractStepValue, ValueType = ExtractStepValue>(key: (_: this) => KeyStep, value: (_: this) => ValueStep): MapStep, (v: unknown, keyStep: KeyStep, valueStep: ValueStep) => Map, KeyType, ValueType>; groupBy, ValueStep extends Step, ValueType = ExtractStepValue>(key: (_: this) => KeyStep, value: (_: this) => ValueStep): MapStep { [k: string]: ValueType; }, KeyType, ValueType>; merge(getA: (_: this) => ObjectStep, getB: (_: this) => ObjectStep): ObjectStep, IfTrue | IfTrue, IfTrue | IfTrue>; deserialize(v: unknown): PropertiesForOutput; createContinuation(g: GraphTraversal): this; private assertIsObjectStep; } export {};