1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | import ts from 'typescript';
|
10 | import { Reference } from '../../imports';
|
11 | import { Declaration } from '../../reflection';
|
12 | import { DynamicValue } from './dynamic';
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 | export declare type ResolvedValue = number | boolean | string | null | undefined | Reference | EnumValue | ResolvedValueArray | ResolvedValueMap | ResolvedModule | KnownFn | DynamicValue<unknown>;
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 | export interface ResolvedValueArray extends Array<ResolvedValue> {
|
28 | }
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 | export interface ResolvedValueMap extends Map<string, ResolvedValue> {
|
36 | }
|
37 |
|
38 |
|
39 |
|
40 |
|
41 | export declare class ResolvedModule {
|
42 | private exports;
|
43 | private evaluate;
|
44 | constructor(exports: Map<string, Declaration>, evaluate: (decl: Declaration) => ResolvedValue);
|
45 | getExport(name: string): ResolvedValue;
|
46 | getExports(): ResolvedValueMap;
|
47 | }
|
48 | /**
|
49 | * A value member of an enumeration.
|
50 | *
|
51 | * Contains a `Reference` to the enumeration itself, and the name of the referenced member.
|
52 | */
|
53 | export declare class EnumValue {
|
54 | readonly enumRef: Reference<ts.Declaration>;
|
55 | readonly name: string;
|
56 | readonly resolved: ResolvedValue;
|
57 | constructor(enumRef: Reference<ts.Declaration>, name: string, resolved: ResolvedValue);
|
58 | }
|
59 | /**
|
60 | * An implementation of a known function that can be statically evaluated.
|
61 | * It could be a built-in function or method (such as `Array.prototype.slice`) or a TypeScript
|
62 | * helper (such as `__spread`).
|
63 | */
|
64 | export declare abstract class KnownFn {
|
65 | abstract evaluate(node: ts.CallExpression, args: ResolvedValueArray): ResolvedValue;
|
66 | }
|