@itwin/ecsql-common 4.2.0-dev.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1039 @@
1
+ import { Constructor } from "@itwin/core-bentley";
2
+ /**
3
+ * Id returned by native code
4
+ * @internal
5
+ */
6
+ declare enum NativeExpIds {
7
+ AllOrAny = "AllOrAnyExp",
8
+ Assignment = "AssignmentExp",
9
+ BetweenRangeValue = "BetweenRangeValueExp",
10
+ BinaryBoolean = "BinaryBooleanExp",
11
+ BinaryValue = "BinaryValueExp",
12
+ BooleanFactor = "BooleanFactorExp",
13
+ Cast = "CastExp",
14
+ ClassName = "ClassNameExp",
15
+ CommonTable = "CommonTableExp",
16
+ CommonTableBlock = "CommonTableBlockExp",
17
+ CommonTableBlockName = "CommonTableBlockNameExp",
18
+ CrossJoin = "CrossJoinExp",
19
+ DeleteStatement = "DeleteStatementExp",
20
+ DerivedProperty = "DerivedPropertyExp",
21
+ FunctionCall = "FunctionCallExp",
22
+ IIF = "IIFExp",
23
+ InsertStatement = "InsertStatementExp",
24
+ LikeRhsValue = "LikeRhsValueExp",
25
+ LimitOffset = "LimitOffsetExp",
26
+ LiteralValue = "LiteralValueExp",
27
+ MemberFunctionCall = "MemberFunctionCallExp",
28
+ NaturalJoin = "NaturalJoinExp",
29
+ Options = "OptionsExp",
30
+ OrderBySpec = "OrderBySpecExp",
31
+ Parameter = "ParameterExp",
32
+ PropertyName = "PropertyNameExp",
33
+ QualifiedJoin = "QualifiedJoinExp",
34
+ RowConstructor = "RowConstructor",
35
+ SearchCaseValue = "SearchCaseValueExp",
36
+ SelectStatement = "SelectStatementExp",
37
+ SingleSelectStatement = "SingleSelectStatementExp",
38
+ Subquery = "SubqueryExp",
39
+ SubqueryRef = "SubqueryRefExp",
40
+ SubqueryTest = "SubqueryTestExp",
41
+ TableValuedFunction = "TableValuedFunctionExp",
42
+ UnaryValue = "UnaryValueExp",
43
+ UpdateStatement = "UpdateStatementExp",
44
+ UsingRelationshipJoinExp = "UsingRelationshipJoinExp"
45
+ }
46
+ /**
47
+ * Type of literal value.
48
+ * @alpha
49
+ */
50
+ export declare enum LiteralValueType {
51
+ Null = "NULL",
52
+ String = "STRING",
53
+ Date = "DATE",
54
+ Time = "TIME",
55
+ Timestamp = "TIMESTAMP",
56
+ Raw = "RAW"
57
+ }
58
+ /**
59
+ * Sort direction specified by ORDER BY spec @see [[OrderBySpecExpr]]
60
+ * @alpha
61
+ */
62
+ export type FirstOrLast = "FIRST" | "LAST";
63
+ /**
64
+ * Sort direction specified by ORDER BY spec @see [[OrderBySpecExpr]]
65
+ * @alpha
66
+ */
67
+ export type SortDirection = "ASC" | "DESC";
68
+ /**
69
+ * Describe how SELECT result is combined with another SELECT in compound select statement @see [[NextSelect]] @see [[SelectStatementExp]]
70
+ * @alpha
71
+ */
72
+ export type CompoundSelectOp = "UNION" | "UNION ALL" | "INTERSECT" | "EXCEPT";
73
+ /**
74
+ * Test subquery result. @see [[SubqueryTest]]
75
+ * @alpha
76
+ */
77
+ export type SubqueryTestOp = "EXISTS";
78
+ /**
79
+ * Describe JOIN/USING relationship direction when relationship is of time 1:1. @see [[UsingRelationshipJoin]]
80
+ * @alpha
81
+ */
82
+ export type JoinDirection = "FORWARD" | "BACKWARD";
83
+ /**
84
+ * Join specification of a Qualified join. @see [[QualifiedJoinExpr]]
85
+ * @alpha
86
+ */
87
+ export type JoinSpec = BooleanExpr | string[] | undefined;
88
+ /**
89
+ * Qualified JOIN type @see [[QualifiedJoinExpr]]
90
+ * @alpha
91
+ */
92
+ export declare enum JoinType {
93
+ LeftOuter = "LEFT OUTER JOIN",
94
+ RightOuter = "RIGHT OUTER JOIN",
95
+ FullOuter = "FULL OUTER JOIN",
96
+ Inner = "INNER JOIN"
97
+ }
98
+ /**
99
+ * Unary operator for @see [[ValueExpr]].
100
+ * @alpha
101
+ */
102
+ export type UnaryValueOp = "-" | "+" | "~";
103
+ /**
104
+ * Unary operator for @see [[BooleanExpr]]
105
+ * @alpha
106
+ */
107
+ export type UnaryBooleanOp = "NOT";
108
+ /**
109
+ * Binary boolean operators used by @see [[BinaryBooleanExpr]]
110
+ * @alpha
111
+ */
112
+ export type BinaryBooleanOp = "AND" | "OR" | "=" | ">=" | ">" | "<=" | "<" | "<>" | "!=";
113
+ /**
114
+ * Binary value operators used by @see [[BinaryValueExpr]]
115
+ * @alpha
116
+ */
117
+ export type BinaryValueOp = "&" | "|" | "<<" | "||" | "/" | "-" | "*" | "+" | "%";
118
+ /**
119
+ * Disqualify term in ECSQL so query planner does not try to find index for it. @see [[ClassNameExpr]]
120
+ * @alpha
121
+ */
122
+ export type DisqualifyOp = "+";
123
+ /**
124
+ * Optional recursive keyword for common table expressions @see [[CteExpr]]
125
+ * @alpha
126
+ */
127
+ export type RecursiveCte = "RECURSIVE";
128
+ /**
129
+ * Polymorphic constraint for @see [[ClassNameExpr]]
130
+ * @alpha
131
+ */
132
+ export type AllOrAnyOp = "ONLY" | "ALL";
133
+ /**
134
+ * Filter rows in select clause or aggregate functions @see [[FuncCallExpr]] and @see [[SelectExpr]]
135
+ * @alpha
136
+ */
137
+ export type AllOrDistinctOp = "DISTINCT" | "ALL";
138
+ /**
139
+ * Return by native code
140
+ * @alpha
141
+ */
142
+ export interface NativeECSqlParseNode {
143
+ [key: string]: any;
144
+ }
145
+ /**
146
+ * Return by native code
147
+ * @alpha
148
+ */
149
+ export interface NativeECSqlParseNodeProvider {
150
+ parseECSql: (ecsql: string) => Promise<NativeECSqlParseNode>;
151
+ }
152
+ /**
153
+ * ECSql expr type supported @see [[Expr]]
154
+ * @alpha
155
+ */
156
+ export declare enum ExprType {
157
+ Literal = "Literal",
158
+ Unary = "Unary",
159
+ Parameter = "Parameter",
160
+ Cast = "Cast",
161
+ BinaryValue = "BinaryValue",
162
+ SearchCase = "SearchCase",
163
+ IIF = "IIF",
164
+ FuncCall = "FuncCall",
165
+ PropertyName = "PropertyName",
166
+ Subquery = "Subquery",
167
+ Between = "Between",
168
+ Like = "Like",
169
+ In = "In",
170
+ Not = "Not",
171
+ IsOfType = "IsOfType",
172
+ IsNull = "IsNull",
173
+ BinaryBoolean = "BinaryBoolean",
174
+ SubqueryTest = "SubqueryTest",
175
+ UsingRelationshipJoin = "UsingRelationshipJoin",
176
+ QualifiedJoin = "QualifiedJoin",
177
+ SubqueryRef = "SubqueryRef",
178
+ CteBlockRef = "CteBlockRef",
179
+ ClassName = "ClassName",
180
+ TableValuedFunc = "TableValuedFunc",
181
+ DerivedProperty = "DerivedProperty",
182
+ SetClause = "SetClause",
183
+ Select = "Select",
184
+ ECSqlOptionsClause = "ECSqlOptions",
185
+ CteBlock = "CteBlock",
186
+ MemberFuncCall = "MemberFuncCall",
187
+ Cte = "Cte",
188
+ UpdateStatement = "UpdateStatement",
189
+ InsertStatement = "InsertStatement",
190
+ DeleteStatement = "DeleteStatement",
191
+ SelectStatement = "SelectStatement",
192
+ SelectionClause = "SelectionClause",
193
+ WhereClause = "WhereClause",
194
+ GroupByClause = "GroupByClause",
195
+ HavingClause = "HavingCluase",
196
+ FromClause = "FromClause",
197
+ OrderByClause = "OrderByClause",
198
+ OrderBySpec = "OrderBySpec",
199
+ LimitClause = "LimitClause",
200
+ Assignment = "Assignment"
201
+ }
202
+ /**
203
+ * Allow to create statement expression tree from a ecsql
204
+ * @alpha
205
+ */
206
+ export declare class ExprFactory {
207
+ readonly provider: NativeECSqlParseNodeProvider;
208
+ constructor(provider: NativeECSqlParseNodeProvider);
209
+ parseStatement(ecsql: string): Promise<StatementExpr>;
210
+ }
211
+ /**
212
+ * Base class for all ECSql expressions.
213
+ * @alpha
214
+ */
215
+ export declare abstract class Expr {
216
+ readonly expType: ExprType;
217
+ constructor(expType: ExprType);
218
+ /**
219
+ * Write expression tree to a ECSQL string
220
+ * @param writer A instance of writer to which expression tree will output tokens.
221
+ */
222
+ abstract writeTo(writer: ECSqlWriter): void;
223
+ abstract get children(): Expr[];
224
+ /**
225
+ * Find instances of expressions matching the type in sub tree.
226
+ * @param type a subclass of Expr
227
+ * @returns
228
+ */
229
+ findInstancesOf<T extends Expr>(type: Constructor<T>): T[];
230
+ /**
231
+ * Allow to traverse the expression tree depth first
232
+ * @param callback this will be called for each expression traverse from first to last.
233
+ */
234
+ traverse(callback: (expr: Expr, parent?: Expr) => void | boolean): void;
235
+ /**
236
+ * Test if class instance is of certain type
237
+ * @param type A class that extends from Expr
238
+ * @returns true if instances matches the type else return false.
239
+ */
240
+ isInstanceOf<T extends Expr>(type: Constructor<T>): boolean;
241
+ asInstanceOf<T extends Expr>(type: Constructor<T>): T | undefined;
242
+ /**
243
+ * Convert expression tree to ECSQL.
244
+ * @param args args to ecsql writer.
245
+ * @returns ECSQL string
246
+ */
247
+ toECSql(args?: ECSqlWriterArgs): string;
248
+ }
249
+ /**
250
+ * Base class for all ECSQL Statements. Here are list of subclasses @see [[CteExpr]], @see [[SelectStatement]], @see [[InsertStatement]], @see [UpdateStatement]] and @see [[DeleteStatement]]
251
+ * @alpha
252
+ */
253
+ export declare abstract class StatementExpr extends Expr {
254
+ static deserialize(node: NativeECSqlParseNode): StatementExpr | InsertStatementExpr | UpdateStatementExpr | DeleteStatementExpr | CteExpr;
255
+ }
256
+ /**
257
+ * Base class for all computed expression like Value and Boolean.
258
+ * @alpha
259
+ */
260
+ export declare abstract class ComputedExpr extends Expr {
261
+ static deserialize(node: NativeECSqlParseNode): BooleanExpr | ValueExpr;
262
+ }
263
+ /**
264
+ * Base class for a boolean expressions. It has following subclasses
265
+ * @see [[BooleanExpr]]
266
+ * @see [[ubqueryTestExpr]]
267
+ * @see [[BetweenExpr]]
268
+ * @see [[LikeExpr]]
269
+ * @see [[InExpr]]
270
+ * @see [[IsNullExpr]]
271
+ * @see [[IsOfTypeExpr]]
272
+ * @see [[NotExpr]]
273
+ * @see [[BinaryBooleanExpr]]
274
+ * @alpha
275
+ */
276
+ export declare abstract class BooleanExpr extends ComputedExpr {
277
+ static readonly deserializableIds: NativeExpIds[];
278
+ static deserialize(node: NativeECSqlParseNode): BooleanExpr | SubqueryTestExpr | BetweenExpr | LikeExpr | InExpr | IsNullExpr | IsOfTypeExpr | NotExpr | BinaryBooleanExpr;
279
+ }
280
+ /**
281
+ * Base class for all value expressions. Following is list of subclasses.
282
+ * @see [[SubqueryExpr]]
283
+ * @see [[ValueExpr]]
284
+ * @see [[UnaryValueExpr]]
285
+ * @see [[FuncCallExpr]]
286
+ * @see [[CastExpr]]
287
+ * @see [[BinaryValueExpr]]
288
+ * @see [[SearchCaseExpr]]
289
+ * @see [[IIFExpr]]
290
+ * @see [[LiteralExpr]]
291
+ * @see [[PropertyNameExpr]]
292
+ * @alpha
293
+ */
294
+ export declare abstract class ValueExpr extends ComputedExpr {
295
+ static readonly deserializableIds: NativeExpIds[];
296
+ static deserialize(node: NativeECSqlParseNode): SubqueryExpr | ValueExpr | UnaryValueExpr | FuncCallExpr | CastExpr | BinaryValueExpr | SearchCaseExpr | IIFExpr | LiteralExpr | PropertyNameExpr;
297
+ }
298
+ /**
299
+ * Hold polymorphic information about @see [[ClassNameExp]]
300
+ * @alpha
301
+ */
302
+ export interface PolymorphicInfo {
303
+ allOrAny: AllOrAnyOp;
304
+ disqualify?: DisqualifyOp;
305
+ }
306
+ /**
307
+ * Base class for expressions that can be used in FROM clause of a SELECT. Following list of this subclasses.
308
+ * @see [[ClassRefExpr]]
309
+ * @see [[ClassNameExpr]]
310
+ * @see [[SubqueryRefExpr]]
311
+ * @see [[UsingRelationshipJoinExpr]]
312
+ * @see [[QualifiedJoinExpr]]
313
+ * @see [[CteBlockRefExpr]]
314
+ * @see [[TableValuedFuncExpr]]
315
+ * @alpha
316
+ */
317
+ export declare abstract class ClassRefExpr extends Expr {
318
+ static readonly deserializableIds: NativeExpIds[];
319
+ static deserialize(node: NativeECSqlParseNode): ClassNameExpr | SubqueryRefExpr | UsingRelationshipJoinExpr | QualifiedJoinExpr | CteBlockRefExpr | TableValuedFuncExpr;
320
+ }
321
+ /**
322
+ * Options for @see [[ECSqlWriter]]
323
+ * @alpha
324
+ */
325
+ export interface ECSqlWriterArgs {
326
+ readonly multiline: boolean;
327
+ readonly eol: "\r\n" | "\n";
328
+ readonly spaceAfterComma: boolean;
329
+ readonly spaceAroundBinOp: boolean;
330
+ readonly keywordCasing: "lower" | "UPPER";
331
+ readonly indent: {
332
+ readonly size: number;
333
+ readonly char: string;
334
+ };
335
+ }
336
+ /**
337
+ * Keywords output by @see [[ECSqlWriter.appendKeyword]]
338
+ * @alpha
339
+ */
340
+ export type Keywords = "ALL" | "AND" | "AS" | "ASC" | "BACKWARD" | "BETWEEN" | "BY" | "CASE" | "CAST" | "CROSS" | "DATE" | "DELETE" | "DESC" | "DISTINCT" | "ECSQLOPTIONS" | "ELSE" | "END" | "ESCAPE" | "EXCEPT" | "EXISTS" | "FIRST" | "FORWARD" | "FROM" | "FULL" | "GROUP" | "HAVING" | "IIF" | "IN" | "INNER" | "INSERT" | "INTERSECT" | "INTO" | "IS" | "JOIN" | "LAST" | "LEFT" | "LIKE" | "LIMIT" | "NATURAL" | "NOT" | "NULL" | "NULLS" | "OFFSET" | "ON" | "ONLY" | "OR" | "ORDER" | "OUTER" | "RECURSIVE" | "RIGHT" | "SELECT" | "SET" | "THEN" | "TIME" | "TIMESTAMP" | "UNION" | "UPDATE" | "USING" | "VALUES" | "WHEN" | "WHERE" | "WITH";
341
+ /**
342
+ * Write expression tree to string
343
+ * @alpha
344
+ */
345
+ export declare class ECSqlWriter {
346
+ readonly options: ECSqlWriterArgs;
347
+ private _tokens;
348
+ private _currentIndent;
349
+ private _isNewLine;
350
+ constructor(options?: ECSqlWriterArgs);
351
+ indent(): void;
352
+ unindent(): void;
353
+ appendBinaryOp(val: string): this;
354
+ appendKeyword(val: Keywords): this;
355
+ appendComma(): void;
356
+ appendQuoted(val: string): this;
357
+ append(val: string): this;
358
+ appendStringLiteral(val: string): this;
359
+ appendLineOrSpace(): this;
360
+ appendSpace(): this;
361
+ appendLine(): this;
362
+ clear(): this;
363
+ squash(): this;
364
+ toString(): string;
365
+ appendExp(exp: Expr): this;
366
+ }
367
+ /**
368
+ * Use to describe selection clause terms in a SELECT statements @see [[SelectionClauseExpr]] @see [[SelectExpr]]
369
+ * @alpha
370
+ */
371
+ export declare class DerivedPropertyExpr extends Expr {
372
+ readonly computedExpr: ComputedExpr;
373
+ readonly alias?: string | undefined;
374
+ static readonly type = ExprType.DerivedProperty;
375
+ constructor(computedExpr: ComputedExpr, alias?: string | undefined);
376
+ get children(): Expr[];
377
+ static deserialize(node: NativeECSqlParseNode): DerivedPropertyExpr;
378
+ writeTo(writer: ECSqlWriter): void;
379
+ }
380
+ /**
381
+ * Describes a ECSQL delete statement.
382
+ * @alpha
383
+ */
384
+ export declare class DeleteStatementExpr extends StatementExpr {
385
+ readonly className: ClassNameExpr;
386
+ readonly where?: WhereClauseExp | undefined;
387
+ readonly options?: ECSqlOptionsClauseExpr | undefined;
388
+ static readonly type = ExprType.DeleteStatement;
389
+ constructor(className: ClassNameExpr, where?: WhereClauseExp | undefined, options?: ECSqlOptionsClauseExpr | undefined);
390
+ get children(): Expr[];
391
+ static deserialize(node: NativeECSqlParseNode): DeleteStatementExpr;
392
+ writeTo(writer: ECSqlWriter): void;
393
+ }
394
+ /**
395
+ * Describe a ECSQL Insert statement.
396
+ * @alpha
397
+ */
398
+ export declare class InsertStatementExpr extends StatementExpr {
399
+ readonly className: ClassNameExpr;
400
+ readonly values: ValueExpr[];
401
+ readonly propertyNames?: PropertyNameExpr[] | undefined;
402
+ static readonly type = ExprType.InsertStatement;
403
+ constructor(className: ClassNameExpr, values: ValueExpr[], propertyNames?: PropertyNameExpr[] | undefined);
404
+ get children(): Expr[];
405
+ static deserialize(node: NativeECSqlParseNode): InsertStatementExpr;
406
+ writeTo(writer: ECSqlWriter): void;
407
+ }
408
+ /**
409
+ * Describes a JOIN clause e.g. <classNameExpr> JOIN <classNameExpr> ON <joinspec>
410
+ * @alpha
411
+ */
412
+ export declare class QualifiedJoinExpr extends ClassRefExpr {
413
+ readonly joinType: JoinType;
414
+ readonly from: ClassRefExpr;
415
+ readonly to: ClassRefExpr;
416
+ readonly spec: JoinSpec;
417
+ static readonly type = ExprType.QualifiedJoin;
418
+ constructor(joinType: JoinType, from: ClassRefExpr, to: ClassRefExpr, spec: JoinSpec);
419
+ get children(): Expr[];
420
+ static deserialize(node: NativeECSqlParseNode): QualifiedJoinExpr;
421
+ writeTo(writer: ECSqlWriter): void;
422
+ }
423
+ /**
424
+ * Describe a JOIN USING clause.
425
+ * @alpha
426
+ */
427
+ export declare class UsingRelationshipJoinExpr extends ClassRefExpr {
428
+ readonly fromClassName: ClassRefExpr;
429
+ readonly toClassName: ClassNameExpr;
430
+ readonly toRelClassName: ClassNameExpr;
431
+ readonly direction?: JoinDirection | undefined;
432
+ static readonly type = ExprType.UsingRelationshipJoin;
433
+ constructor(fromClassName: ClassRefExpr, toClassName: ClassNameExpr, toRelClassName: ClassNameExpr, direction?: JoinDirection | undefined);
434
+ get children(): Expr[];
435
+ static deserialize(node: NativeECSqlParseNode): UsingRelationshipJoinExpr;
436
+ writeTo(writer: ECSqlWriter): void;
437
+ }
438
+ /**
439
+ * Describe subquery result test e.g. EXISTS(<subquery>)
440
+ * @alpha
441
+ */
442
+ export declare class SubqueryTestExpr extends BooleanExpr {
443
+ readonly op: SubqueryTestOp;
444
+ readonly query: SubqueryExpr;
445
+ static readonly type = ExprType.SubqueryTest;
446
+ constructor(op: SubqueryTestOp, query: SubqueryExpr);
447
+ get children(): Expr[];
448
+ static deserialize(node: NativeECSqlParseNode): SubqueryTestExpr;
449
+ writeTo(writer: ECSqlWriter): void;
450
+ }
451
+ /**
452
+ * Describe a subquery when used in FROM clause.
453
+ * @alpha
454
+ */
455
+ export declare class SubqueryRefExpr extends ClassRefExpr {
456
+ readonly query: SubqueryExpr;
457
+ readonly polymorphicInfo?: PolymorphicInfo | undefined;
458
+ readonly alias?: string | undefined;
459
+ static readonly type = ExprType.SubqueryRef;
460
+ constructor(query: SubqueryExpr, polymorphicInfo?: PolymorphicInfo | undefined, alias?: string | undefined);
461
+ get children(): Expr[];
462
+ static deserialize(node: NativeECSqlParseNode): SubqueryRefExpr;
463
+ writeTo(writer: ECSqlWriter): void;
464
+ }
465
+ /**
466
+ * Describe next select statement in a compound select statement. @see [[SelectStatementExp]]
467
+ * @alpha
468
+ */
469
+ export interface NextSelect {
470
+ op: CompoundSelectOp;
471
+ select: SelectStatementExpr;
472
+ }
473
+ /**
474
+ * Describe a optionally compound SELECT statement.
475
+ * @alpha
476
+ */
477
+ export declare class SelectStatementExpr extends StatementExpr {
478
+ readonly singleSelect: SelectExpr;
479
+ readonly nextSelect?: NextSelect | undefined;
480
+ static readonly type = ExprType.SelectStatement;
481
+ constructor(singleSelect: SelectExpr, nextSelect?: NextSelect | undefined);
482
+ get children(): Expr[];
483
+ static deserialize(node: NativeECSqlParseNode): SelectStatementExpr;
484
+ writeTo(writer: ECSqlWriter): void;
485
+ }
486
+ /**
487
+ * Describe selection in a SELECT query
488
+ * @alpha
489
+ */
490
+ export declare class SelectionClauseExpr extends Expr {
491
+ readonly derivedPropertyList: DerivedPropertyExpr[];
492
+ static readonly type = ExprType.SelectionClause;
493
+ constructor(derivedPropertyList: DerivedPropertyExpr[]);
494
+ get children(): Expr[];
495
+ static deserialize(node: NativeECSqlParseNode): SelectionClauseExpr;
496
+ writeTo(writer: ECSqlWriter): void;
497
+ }
498
+ /**
499
+ * Describe a GROUP BY clause in a SELECT statement.
500
+ * @alpha
501
+ */
502
+ export declare class GroupByClauseExpr extends Expr {
503
+ readonly exprList: ValueExpr[];
504
+ static readonly type = ExprType.GroupByClause;
505
+ constructor(exprList: ValueExpr[]);
506
+ get children(): Expr[];
507
+ static deserialize(node: NativeECSqlParseNode): GroupByClauseExpr;
508
+ writeTo(writer: ECSqlWriter): void;
509
+ }
510
+ /**
511
+ * Describe a HAVING clause in a SELECT statement.
512
+ * @alpha
513
+ */
514
+ export declare class HavingClauseExpr extends Expr {
515
+ readonly filterExpr: ComputedExpr;
516
+ static readonly type = ExprType.HavingClause;
517
+ constructor(filterExpr: ComputedExpr);
518
+ get children(): Expr[];
519
+ static deserialize(node: NativeECSqlParseNode): HavingClauseExpr;
520
+ writeTo(writer: ECSqlWriter): void;
521
+ }
522
+ /**
523
+ * Describe a FROM clause in a SELECT statement.
524
+ * @alpha
525
+ */
526
+ export declare class FromClauseExpr extends Expr {
527
+ readonly classRefs: ClassRefExpr[];
528
+ static readonly type = ExprType.FromClause;
529
+ constructor(classRefs: ClassRefExpr[]);
530
+ get children(): Expr[];
531
+ static deserialize(node: NativeECSqlParseNode): FromClauseExpr;
532
+ writeTo(writer: ECSqlWriter): void;
533
+ }
534
+ /**
535
+ * Describe a WHERE clause in a SELECT, UPDATE and DELETE statement.
536
+ * @alpha
537
+ */
538
+ export declare class WhereClauseExp extends Expr {
539
+ readonly filterExpr: ComputedExpr;
540
+ static readonly type = ExprType.WhereClause;
541
+ constructor(filterExpr: ComputedExpr);
542
+ get children(): Expr[];
543
+ static deserialize(node: NativeECSqlParseNode): WhereClauseExp;
544
+ writeTo(writer: ECSqlWriter): void;
545
+ }
546
+ /**
547
+ * Describe a single sorted term in a ORDER BY clause of a SELECT statement.
548
+ * @alpha
549
+ */
550
+ export declare class OrderBySpecExpr extends Expr {
551
+ readonly term: ValueExpr;
552
+ readonly sortDirection?: SortDirection | undefined;
553
+ readonly nulls?: FirstOrLast | undefined;
554
+ static readonly type = ExprType.OrderBySpec;
555
+ constructor(term: ValueExpr, sortDirection?: SortDirection | undefined, nulls?: FirstOrLast | undefined);
556
+ get children(): Expr[];
557
+ static deserialize(node: NativeECSqlParseNode): OrderBySpecExpr;
558
+ writeTo(writer: ECSqlWriter): void;
559
+ }
560
+ /**
561
+ * Describe a ORDER BY clause in a SELECT statement.
562
+ * @alpha
563
+ */
564
+ export declare class OrderByClauseExpr extends Expr {
565
+ readonly terms: OrderBySpecExpr[];
566
+ static readonly type = ExprType.OrderByClause;
567
+ constructor(terms: OrderBySpecExpr[]);
568
+ get children(): Expr[];
569
+ static deserialize(node: NativeECSqlParseNode): OrderByClauseExpr;
570
+ writeTo(writer: ECSqlWriter): void;
571
+ }
572
+ /**
573
+ * Describe a LIMIT clause in a SELECT statement.
574
+ * @alpha
575
+ */
576
+ export declare class LimitClauseExpr extends Expr {
577
+ readonly limit: ValueExpr;
578
+ readonly offset?: ValueExpr | undefined;
579
+ static readonly type = ExprType.LimitClause;
580
+ constructor(limit: ValueExpr, offset?: ValueExpr | undefined);
581
+ get children(): Expr[];
582
+ static deserialize(node: NativeECSqlParseNode): LimitClauseExpr;
583
+ writeTo(writer: ECSqlWriter): void;
584
+ }
585
+ /**
586
+ * Describe a single select statement.
587
+ * @alpha
588
+ */
589
+ export declare class SelectExpr extends Expr {
590
+ readonly selection: SelectionClauseExpr;
591
+ readonly rowQuantifier?: AllOrDistinctOp | undefined;
592
+ readonly from?: FromClauseExpr | undefined;
593
+ readonly where?: WhereClauseExp | undefined;
594
+ readonly groupBy?: GroupByClauseExpr | undefined;
595
+ readonly having?: HavingClauseExpr | undefined;
596
+ readonly orderBy?: OrderByClauseExpr | undefined;
597
+ readonly limit?: LimitClauseExpr | undefined;
598
+ readonly options?: ECSqlOptionsClauseExpr | undefined;
599
+ static readonly type = ExprType.Select;
600
+ constructor(selection: SelectionClauseExpr, rowQuantifier?: AllOrDistinctOp | undefined, from?: FromClauseExpr | undefined, where?: WhereClauseExp | undefined, groupBy?: GroupByClauseExpr | undefined, having?: HavingClauseExpr | undefined, orderBy?: OrderByClauseExpr | undefined, limit?: LimitClauseExpr | undefined, options?: ECSqlOptionsClauseExpr | undefined);
601
+ get children(): Expr[];
602
+ static deserialize(node: NativeECSqlParseNode): SelectExpr;
603
+ writeTo(writer: ECSqlWriter): void;
604
+ }
605
+ /**
606
+ * Describe a subquery when used as value. This kind of query expect to return one column and one one value.
607
+ * @alpha
608
+ */
609
+ export declare class SubqueryExpr extends ValueExpr {
610
+ readonly query: SelectStatementExpr;
611
+ static readonly type = ExprType.Subquery;
612
+ constructor(query: SelectStatementExpr);
613
+ get children(): Expr[];
614
+ static deserialize(node: NativeECSqlParseNode): SubqueryExpr;
615
+ writeTo(writer: ECSqlWriter): void;
616
+ }
617
+ /**
618
+ * Describe a binary boolean expression in ECSQL.
619
+ * @alpha
620
+ */
621
+ export declare class BinaryBooleanExpr extends BooleanExpr {
622
+ readonly op: BinaryBooleanOp;
623
+ readonly lhsExpr: ComputedExpr;
624
+ readonly rhsExpr: ComputedExpr;
625
+ readonly not?: "NOT" | undefined;
626
+ static readonly type = ExprType.BinaryBoolean;
627
+ constructor(op: BinaryBooleanOp, lhsExpr: ComputedExpr, rhsExpr: ComputedExpr, not?: "NOT" | undefined);
628
+ get children(): Expr[];
629
+ static deserialize(node: NativeECSqlParseNode): BinaryBooleanExpr;
630
+ writeTo(writer: ECSqlWriter): void;
631
+ }
632
+ /**
633
+ * Describe a <expr> IS NULL boolean expression
634
+ * @alpha
635
+ */
636
+ export declare class IsNullExpr extends BooleanExpr {
637
+ readonly operandExpr: ValueExpr;
638
+ readonly not?: "NOT" | undefined;
639
+ static readonly type = ExprType.IsNull;
640
+ constructor(operandExpr: ValueExpr, not?: "NOT" | undefined);
641
+ get children(): Expr[];
642
+ static parseOp(node: NativeECSqlParseNode): boolean[];
643
+ static deserialize(node: NativeECSqlParseNode): IsNullExpr;
644
+ writeTo(writer: ECSqlWriter): void;
645
+ }
646
+ /**
647
+ * Describe a <expr> IS (type1[, type2]) in ECSQL.
648
+ * @alpha
649
+ */
650
+ export declare class IsOfTypeExpr extends BooleanExpr {
651
+ readonly lhsExpr: ValueExpr;
652
+ readonly typeNames: ClassNameExpr[];
653
+ readonly not?: "NOT" | undefined;
654
+ static readonly type = ExprType.IsOfType;
655
+ constructor(lhsExpr: ValueExpr, typeNames: ClassNameExpr[], not?: "NOT" | undefined);
656
+ get children(): Expr[];
657
+ static parseOp(node: NativeECSqlParseNode): boolean[];
658
+ static deserialize(node: NativeECSqlParseNode): IsOfTypeExpr;
659
+ writeTo(writer: ECSqlWriter): void;
660
+ }
661
+ /**
662
+ * Describe a NOT <expr> boolean expression
663
+ * @alpha
664
+ */
665
+ export declare class NotExpr extends BooleanExpr {
666
+ readonly operandExpr: ComputedExpr;
667
+ static readonly type = ExprType.Not;
668
+ constructor(operandExpr: ComputedExpr);
669
+ get children(): Expr[];
670
+ static deserialize(node: NativeECSqlParseNode): NotExpr;
671
+ writeTo(writer: ECSqlWriter): void;
672
+ }
673
+ /**
674
+ * Describe a <expr> IN subquery|(val1[,val2...]) boolean expression
675
+ * @alpha
676
+ */
677
+ export declare class InExpr extends BooleanExpr {
678
+ readonly lhsExpr: ValueExpr;
679
+ readonly rhsExpr: ValueExpr[] | SubqueryExpr;
680
+ readonly not?: "NOT" | undefined;
681
+ static readonly type = ExprType.In;
682
+ constructor(lhsExpr: ValueExpr, rhsExpr: ValueExpr[] | SubqueryExpr, not?: "NOT" | undefined);
683
+ get children(): Expr[];
684
+ static parseOp(op: string): boolean[];
685
+ static deserialize(node: NativeECSqlParseNode): InExpr;
686
+ writeTo(writer: ECSqlWriter): void;
687
+ }
688
+ /**
689
+ * Describe a <expr> LIKE <expr> [ESCAPE <expr>] boolean expression
690
+ * @alpha
691
+ */
692
+ export declare class LikeExpr extends BooleanExpr {
693
+ readonly lhsExpr: ValueExpr;
694
+ readonly patternExpr: ValueExpr;
695
+ readonly escapeExpr?: ValueExpr | undefined;
696
+ readonly not?: "NOT" | undefined;
697
+ static readonly type = ExprType.Like;
698
+ constructor(lhsExpr: ValueExpr, patternExpr: ValueExpr, escapeExpr?: ValueExpr | undefined, not?: "NOT" | undefined);
699
+ get children(): Expr[];
700
+ static parseOp(op: string): boolean[];
701
+ static deserialize(node: NativeECSqlParseNode): LikeExpr;
702
+ writeTo(writer: ECSqlWriter): void;
703
+ }
704
+ /**
705
+ * Describe a <expr> BETWEEN <expr> AND <expr> boolean expression
706
+ * @alpha
707
+ */
708
+ export declare class BetweenExpr extends BooleanExpr {
709
+ readonly lhsExpr: ValueExpr;
710
+ readonly lowerBoundExpr: ValueExpr;
711
+ readonly upperBoundExpr: ValueExpr;
712
+ readonly not?: "NOT" | undefined;
713
+ static readonly type = ExprType.Between;
714
+ constructor(lhsExpr: ValueExpr, lowerBoundExpr: ValueExpr, upperBoundExpr: ValueExpr, not?: "NOT" | undefined);
715
+ get children(): Expr[];
716
+ static parseOp(op: string): boolean[];
717
+ static deserialize(node: NativeECSqlParseNode): BetweenExpr;
718
+ writeTo(writer: ECSqlWriter): void;
719
+ }
720
+ /**
721
+ * Describe a common table expression base query statement
722
+ * @alpha
723
+ */
724
+ export declare class CteExpr extends StatementExpr {
725
+ readonly cteBlocks: CteBlockExpr[];
726
+ readonly query: SelectStatementExpr;
727
+ readonly recursive?: "RECURSIVE" | undefined;
728
+ static readonly type = ExprType.Cte;
729
+ constructor(cteBlocks: CteBlockExpr[], query: SelectStatementExpr, recursive?: "RECURSIVE" | undefined);
730
+ get children(): Expr[];
731
+ static deserialize(node: NativeECSqlParseNode): CteExpr;
732
+ writeTo(writer: ECSqlWriter): void;
733
+ }
734
+ /**
735
+ * Describe a single block of CTE that can be reference in FROM clause of a SELECT
736
+ * @alpha
737
+ */
738
+ export declare class CteBlockExpr extends Expr {
739
+ readonly name: string;
740
+ readonly query: SelectStatementExpr;
741
+ readonly props: string[];
742
+ static readonly type = ExprType.CteBlock;
743
+ constructor(name: string, query: SelectStatementExpr, props: string[]);
744
+ get children(): Expr[];
745
+ static deserialize(node: NativeECSqlParseNode): CteBlockExpr;
746
+ writeTo(writer: ECSqlWriter): void;
747
+ }
748
+ /**
749
+ * Describe a name reference to a CTE block.
750
+ * @alpha
751
+ */
752
+ export declare class CteBlockRefExpr extends ClassRefExpr {
753
+ readonly name: string;
754
+ readonly alias?: string | undefined;
755
+ static readonly type = ExprType.CteBlockRef;
756
+ constructor(name: string, alias?: string | undefined);
757
+ get children(): Expr[];
758
+ static deserialize(node: NativeECSqlParseNode): CteBlockRefExpr;
759
+ writeTo(writer: ECSqlWriter): void;
760
+ }
761
+ /**
762
+ * Describe a table value function expression in ECSQL that appear in FROM clause of query.
763
+ * @alpha
764
+ */
765
+ export declare class TableValuedFuncExpr extends ClassRefExpr {
766
+ readonly schemaName: string;
767
+ readonly memberFunc: MemberFuncCallExpr;
768
+ readonly alias?: string | undefined;
769
+ static readonly type = ExprType.TableValuedFunc;
770
+ constructor(schemaName: string, memberFunc: MemberFuncCallExpr, alias?: string | undefined);
771
+ get children(): Expr[];
772
+ static deserialize(node: NativeECSqlParseNode): TableValuedFuncExpr;
773
+ writeTo(writer: ECSqlWriter): void;
774
+ }
775
+ /**
776
+ * Describe a class name reference in ECSQL that appear in FROM clause of a SELECT.
777
+ * @alpha
778
+ */
779
+ export declare class ClassNameExpr extends ClassRefExpr {
780
+ readonly schemaNameOrAlias: string;
781
+ readonly className: string;
782
+ readonly tablespace?: string | undefined;
783
+ readonly alias?: string | undefined;
784
+ polymorphicInfo?: PolymorphicInfo | undefined;
785
+ readonly memberFunc?: MemberFuncCallExpr | undefined;
786
+ static readonly type = ExprType.ClassName;
787
+ constructor(schemaNameOrAlias: string, className: string, tablespace?: string | undefined, alias?: string | undefined, polymorphicInfo?: PolymorphicInfo | undefined, memberFunc?: MemberFuncCallExpr | undefined);
788
+ get children(): Expr[];
789
+ static deserialize(node: NativeECSqlParseNode): ClassNameExpr;
790
+ writeTo(writer: ECSqlWriter): void;
791
+ static fromECSql(ecsql: string): ClassNameExpr;
792
+ }
793
+ /**
794
+ * Describe a UPDATE statement in ECSQL.
795
+ * @alpha
796
+ */
797
+ export declare class UpdateStatementExpr extends StatementExpr {
798
+ readonly className: ClassNameExpr;
799
+ readonly assignement: SetClauseExpr;
800
+ readonly where?: WhereClauseExp | undefined;
801
+ readonly options?: ECSqlOptionsClauseExpr | undefined;
802
+ static readonly type = ExprType.UpdateStatement;
803
+ constructor(className: ClassNameExpr, assignement: SetClauseExpr, where?: WhereClauseExp | undefined, options?: ECSqlOptionsClauseExpr | undefined);
804
+ get children(): Expr[];
805
+ static deserialize(node: NativeECSqlParseNode): UpdateStatementExpr;
806
+ writeTo(writer: ECSqlWriter): void;
807
+ }
808
+ /**
809
+ * Supported options in ECSQL option clause
810
+ * @alpha
811
+ */
812
+ export type ECSqlSupportedOptions = "NoECClassIdFilter" | "ReadonlyPropertiesAreUpdatable";
813
+ /**
814
+ * ECSql option name and optionally value pair.
815
+ * @alpha
816
+ */
817
+ export interface ECSqlOption {
818
+ name: ECSqlSupportedOptions;
819
+ value?: string;
820
+ }
821
+ /**
822
+ * Describe ECSQL option clause.
823
+ * @alpha
824
+ */
825
+ export declare class ECSqlOptionsClauseExpr extends Expr {
826
+ readonly options: ECSqlOption[];
827
+ static readonly type = ExprType.ECSqlOptionsClause;
828
+ constructor(options: ECSqlOption[]);
829
+ get children(): Expr[];
830
+ static deserialize(node: NativeECSqlParseNode): ECSqlOptionsClauseExpr;
831
+ writeTo(writer: ECSqlWriter): void;
832
+ }
833
+ /**
834
+ * A single property value assignment for update clause
835
+ * @alpha
836
+ */
837
+ export declare class AssignmentExpr extends Expr {
838
+ readonly propertyName: PropertyNameExpr;
839
+ readonly valueExpr: ValueExpr;
840
+ static readonly type = ExprType.Assignment;
841
+ constructor(propertyName: PropertyNameExpr, valueExpr: ValueExpr);
842
+ get children(): Expr[];
843
+ static deserialize(node: NativeECSqlParseNode): AssignmentExpr;
844
+ writeTo(writer: ECSqlWriter): void;
845
+ }
846
+ /**
847
+ * Describe a set clause in a UPDATE statement
848
+ * @alpha
849
+ */
850
+ export declare class SetClauseExpr extends Expr {
851
+ readonly assignments: AssignmentExpr[];
852
+ static readonly type = ExprType.SetClause;
853
+ constructor(assignments: AssignmentExpr[]);
854
+ get children(): Expr[];
855
+ static deserialize(node: NativeECSqlParseNode): SetClauseExpr;
856
+ writeTo(writer: ECSqlWriter): void;
857
+ }
858
+ /**
859
+ * Describe a strong typed IIF function in ECSQL
860
+ * @alpha
861
+ */
862
+ export declare class IIFExpr extends ValueExpr {
863
+ readonly whenExpr: BooleanExpr;
864
+ readonly thenExpr: ValueExpr;
865
+ readonly elseExpr: ValueExpr;
866
+ static readonly type = ExprType.IIF;
867
+ constructor(whenExpr: BooleanExpr, thenExpr: ValueExpr, elseExpr: ValueExpr);
868
+ get children(): Expr[];
869
+ static deserialize(node: NativeECSqlParseNode): IIFExpr;
870
+ writeTo(writer: ECSqlWriter): void;
871
+ }
872
+ /**
873
+ * When then block in CASE-WHEN-THEN expression
874
+ * @alpha
875
+ */
876
+ export interface WhenThenBlock {
877
+ whenExpr: BooleanExpr;
878
+ thenExpr: ValueExpr;
879
+ }
880
+ /**
881
+ * Describe a CASE-WHEN-THEN expression in ECSQL
882
+ * @alpha
883
+ */
884
+ export declare class SearchCaseExpr extends ValueExpr {
885
+ readonly whenThenList: WhenThenBlock[];
886
+ readonly elseExpr?: ValueExpr | undefined;
887
+ static readonly type = ExprType.SearchCase;
888
+ constructor(whenThenList: WhenThenBlock[], elseExpr?: ValueExpr | undefined);
889
+ get children(): Expr[];
890
+ static deserialize(node: NativeECSqlParseNode): SearchCaseExpr;
891
+ writeTo(writer: ECSqlWriter): void;
892
+ }
893
+ /**
894
+ * Describe a binary value expression
895
+ * @alpha
896
+ */
897
+ export declare class BinaryValueExpr extends ValueExpr {
898
+ readonly op: BinaryValueOp;
899
+ readonly lhsExpr: ValueExpr;
900
+ readonly rhsExpr: ValueExpr;
901
+ static readonly type = ExprType.BinaryValue;
902
+ constructor(op: BinaryValueOp, lhsExpr: ValueExpr, rhsExpr: ValueExpr);
903
+ get children(): Expr[];
904
+ static deserialize(node: NativeECSqlParseNode): BinaryValueExpr;
905
+ writeTo(writer: ECSqlWriter): void;
906
+ }
907
+ /**
908
+ * Cast a expression into a target time e.g. CAST(<expr> AS STRING)
909
+ * @alpha
910
+ */
911
+ export declare class CastExpr extends ValueExpr {
912
+ readonly valueExpr: ValueExpr;
913
+ readonly targetType: string;
914
+ static readonly type = ExprType.Cast;
915
+ constructor(valueExpr: ValueExpr, targetType: string);
916
+ get children(): Expr[];
917
+ static deserialize(node: NativeECSqlParseNode): CastExpr;
918
+ writeTo(writer: ECSqlWriter): void;
919
+ }
920
+ /**
921
+ * Represent a member function called w.r.t a ClassNameExpr
922
+ * @alpha
923
+ */
924
+ export declare class MemberFuncCallExpr extends Expr {
925
+ readonly functionName: string;
926
+ readonly args: ValueExpr[];
927
+ static readonly type = ExprType.MemberFuncCall;
928
+ constructor(functionName: string, args: ValueExpr[]);
929
+ get children(): Expr[];
930
+ static deserialize(node: NativeECSqlParseNode): MemberFuncCallExpr;
931
+ writeTo(writer: ECSqlWriter): void;
932
+ }
933
+ /**
934
+ * Represent a function call in ecsql
935
+ * @alpha
936
+ */
937
+ export declare class FuncCallExpr extends ValueExpr {
938
+ readonly functionName: string;
939
+ readonly args: ValueExpr[];
940
+ readonly allOrDistinct?: AllOrDistinctOp | undefined;
941
+ static readonly type = ExprType.FuncCall;
942
+ constructor(functionName: string, args: ValueExpr[], allOrDistinct?: AllOrDistinctOp | undefined);
943
+ get children(): Expr[];
944
+ static deserialize(node: NativeECSqlParseNode): FuncCallExpr;
945
+ writeTo(writer: ECSqlWriter): void;
946
+ static makeAbs(arg: ValueExpr): FuncCallExpr;
947
+ static makeLower(arg: ValueExpr): FuncCallExpr;
948
+ static makeUpper(arg: ValueExpr): FuncCallExpr;
949
+ static makeLTrim(arg0: ValueExpr, arg1?: ValueExpr): FuncCallExpr;
950
+ static makeRTrim(arg0: ValueExpr, arg1?: ValueExpr): FuncCallExpr;
951
+ static makeLHex(arg: ValueExpr): FuncCallExpr;
952
+ static makeLIfNull(arg0: ValueExpr, arg1: ValueExpr): FuncCallExpr;
953
+ static makeInstr(arg0: ValueExpr, arg1: ValueExpr): FuncCallExpr;
954
+ static makeLength(arg0: ValueExpr): FuncCallExpr;
955
+ static makeLike(arg0: ValueExpr, arg1: ValueExpr, arg2?: ValueExpr): FuncCallExpr;
956
+ static makeLikelihood(arg0: ValueExpr, arg1: ValueExpr): FuncCallExpr;
957
+ static makeMax(arg: ValueExpr, ...optionalArgs: ValueExpr[]): FuncCallExpr;
958
+ static makeMin(arg: ValueExpr, ...optionalArgs: ValueExpr[]): FuncCallExpr;
959
+ static makePrintf(arg: ValueExpr, ...optionalArgs: ValueExpr[]): FuncCallExpr;
960
+ static makeRandom(): FuncCallExpr;
961
+ static makeQuote(arg: ValueExpr): FuncCallExpr;
962
+ static makeRandomBlob(arg: ValueExpr): FuncCallExpr;
963
+ static makeReplace(arg0: ValueExpr, arg1: ValueExpr, arg2: ValueExpr): FuncCallExpr;
964
+ static makeRound(arg0: ValueExpr, arg1?: ValueExpr): FuncCallExpr;
965
+ static makeSign(arg0: ValueExpr): FuncCallExpr;
966
+ static makeUnhex(arg0: ValueExpr): FuncCallExpr;
967
+ static makeSoundex(arg0: ValueExpr): FuncCallExpr;
968
+ static makeTrim(arg0: ValueExpr, arg1?: ValueExpr): FuncCallExpr;
969
+ static makeTypeOf(arg0: ValueExpr): FuncCallExpr;
970
+ static makeZeroBlob(arg0: ValueExpr): FuncCallExpr;
971
+ static makeUnlikely(arg0: ValueExpr): FuncCallExpr;
972
+ static makeSubstring(arg0: ValueExpr, arg1: ValueExpr, arg2: ValueExpr): FuncCallExpr;
973
+ static makeStrToGuid(arg0: ValueExpr): FuncCallExpr;
974
+ static makeGuidToStr(arg0: ValueExpr): FuncCallExpr;
975
+ static makeIdToHex(arg0: ValueExpr): FuncCallExpr;
976
+ static makeHexToId(arg0: ValueExpr): FuncCallExpr;
977
+ static makeEcClassName(arg0: ValueExpr, fmt?: "s:c" | "a:c" | "s" | "a" | "c" | "s.c" | "a.c"): FuncCallExpr;
978
+ static makeEcClassId(arg0: ValueExpr): FuncCallExpr;
979
+ static makeInstanceOf(arg0: ValueExpr, arg1: ValueExpr): FuncCallExpr;
980
+ }
981
+ /**
982
+ * Represent positional or named parameter
983
+ * @alpha
984
+ */
985
+ export declare class ParameterExpr extends ValueExpr {
986
+ readonly name?: string | undefined;
987
+ static readonly type = ExprType.Parameter;
988
+ constructor(name?: string | undefined);
989
+ get children(): Expr[];
990
+ static deserialize(node: NativeECSqlParseNode): ParameterExpr;
991
+ writeTo(writer: ECSqlWriter): void;
992
+ }
993
+ /**
994
+ * Unary value with operator e.g. [+|-|~]<number>
995
+ * @alpha
996
+ */
997
+ export declare class UnaryValueExpr extends ValueExpr {
998
+ readonly op: UnaryValueOp;
999
+ readonly valueExpr: ValueExpr;
1000
+ static readonly type = ExprType.Unary;
1001
+ constructor(op: UnaryValueOp, valueExpr: ValueExpr);
1002
+ get children(): Expr[];
1003
+ static deserialize(node: NativeECSqlParseNode): UnaryValueExpr;
1004
+ writeTo(writer: ECSqlWriter): void;
1005
+ }
1006
+ /**
1007
+ * Represent constant literal like string, data, time, timestamp, number or null
1008
+ * @alpha
1009
+ */
1010
+ export declare class LiteralExpr extends ValueExpr {
1011
+ readonly valueType: LiteralValueType;
1012
+ readonly rawValue: string;
1013
+ static readonly type = ExprType.Literal;
1014
+ constructor(valueType: LiteralValueType, rawValue: string);
1015
+ get children(): Expr[];
1016
+ static deserialize(node: NativeECSqlParseNode): LiteralExpr;
1017
+ writeTo(writer: ECSqlWriter): void;
1018
+ static makeRaw(val: string): LiteralExpr;
1019
+ static makeString(val: string): LiteralExpr;
1020
+ static makeNumber(val: number): LiteralExpr;
1021
+ static makeDate(val: Date): LiteralExpr;
1022
+ static makeTime(val: Date): LiteralExpr;
1023
+ static makeTimestamp(val: Date): LiteralExpr;
1024
+ static makeNull(): LiteralExpr;
1025
+ }
1026
+ /**
1027
+ * Represent property name identifier
1028
+ * @alpha
1029
+ */
1030
+ export declare class PropertyNameExpr extends ValueExpr {
1031
+ readonly propertyPath: string;
1032
+ static readonly type = ExprType.PropertyName;
1033
+ constructor(propertyPath: string);
1034
+ get children(): Expr[];
1035
+ static deserialize(node: NativeECSqlParseNode): PropertyNameExpr;
1036
+ writeTo(writer: ECSqlWriter): void;
1037
+ }
1038
+ export {};
1039
+ //# sourceMappingURL=ECSqlAst.d.ts.map