/** @packageDocumentation * @module ECSQL */ import { Id64String } from "@bentley/bentleyjs-core"; /** Describes the different data types an ECSQL value can be of. * See also [ECSQL]($docs/learning/ECSQL). * @public */ export declare enum ECSqlValueType { Blob = 1, Boolean = 2, DateTime = 3, Double = 4, Geometry = 5, Id = 6, Int = 7, Int64 = 8, Point2d = 9, Point3d = 10, String = 11, Navigation = 12, Struct = 13, PrimitiveArray = 14, StructArray = 15, Guid = 16 } /** An ECSQL Navigation value. * It is returned from ECSQL SELECT statements for navigation properties. * See also [ECSQL]($docs/learning/ECSQL). * @public */ export interface NavigationValue { /** ECInstanceId of the related instance */ id: Id64String; /** Fully qualified class name of the relationship backing the Navigation property */ relClassName?: string; } /** An ECSQL Navigation value which can be bound to a navigation property ECSQL parameter * See also [ECSQL]($docs/learning/ECSQL). * @public */ export interface NavigationBindingValue { /** ECInstanceId of the related instance */ id: Id64String; /** Fully qualified class name of the relationship backing the Navigation property */ relClassName?: string; /** Table space where the relationship's schema is persisted. This is only required * if other ECDb files are attached to the primary one. In case a schema exists in more than one of the files, * pass the table space to disambiguate. */ relClassTableSpace?: string; } /** Equivalent of the ECEnumeration OpCode in the **ECDbChange** ECSchema. * The enum can be used when programmatically binding values to the InstanceChange.OpCode property of * the ECDbChange ECSchema. * * See also * - [ChangeSummary Overview]($docs/learning/ChangeSummaries) * @public */ export declare enum ChangeOpCode { Insert = 1, Update = 2, Delete = 4 } /** The enum represents the values for the ChangedValueState argument of the ECSQL function **Changes**. * The enum can be used when programmatically binding values to the ChangedValueState argument * in an ECSQL using the **Changes** ECSQL function. * * See also * - [ChangeSummary Overview]($docs/learning/ChangeSummaries) * @public */ export declare enum ChangedValueState { AfterInsert = 1, BeforeUpdate = 2, AfterUpdate = 3, BeforeDelete = 4 } /** Defines the ECSQL system properties. * See also [ECSQL]($docs/learning/ECSQL). * @public */ export declare enum ECSqlSystemProperty { ECInstanceId = 0, ECClassId = 1, SourceECInstanceId = 2, SourceECClassId = 3, TargetECInstanceId = 4, TargetECClassId = 5, NavigationId = 6, NavigationRelClassId = 7, PointX = 8, PointY = 9, PointZ = 10 } /** Utility to format ECProperty names according to the iModel.js formatting rules. * See also [ECSQL Row Format]($docs/learning/ECSQLRowFormat). * @public */ export declare class ECJsNames { /** Formats the specified ECProperty name according to the iModel.js formatting rules. * * See [ECSQL Row Format]($docs/learning/ECSQLRowFormat) which describes the formatting rules. * * @param ecProperty Property name as defined in the ECSchema for regular ECProperties * or the name of an ECSQL system properties * @param isSystemProperty if omitted, the method will try to find out whether the given property * is a system property or not. If true is specified, the method will throw if the property name * is not a known system property. If false is specified, the method will not attempt to recognize * the property name as system property. */ static toJsName(propName: string, isSystemProperty?: boolean): string; /** Returns the name of the specified ECSQL system property according to the * iModel.js formatting rules. * * See [ECSQL Row Format]($docs/learning/ECSQLRowFormat) which describes the formatting rules. * @param systemPropertyType System property type */ static systemPropertyToJsName(systemPropertyType: ECSqlSystemProperty): string; private static lowerFirstChar; } //# sourceMappingURL=ECSqlTypes.d.ts.map