UNPKG

3.06 kBTypeScriptView Raw
1import { PresentArray } from '@glimmer/interfaces';
2import { SourceSlice } from '../../source/slice';
3import type { CallFields } from './base';
4import type { FreeVarReference, VariableReference } from './refs';
5/**
6 * A Handlebars literal.
7 *
8 * {@link https://handlebarsjs.com/guide/expressions.html#literal-segments}
9 */
10export declare type LiteralValue = string | boolean | number | undefined | null;
11export interface LiteralTypes {
12 string: string;
13 boolean: boolean;
14 number: number;
15 null: null;
16 undefined: undefined;
17}
18declare const LiteralExpression_base: import("./node").TypedNodeConstructor<"Literal", {
19 value: LiteralValue;
20} & import("./node").BaseNodeFields>;
21/**
22 * Corresponds to a Handlebars literal.
23 *
24 * @see {LiteralValue}
25 */
26export declare class LiteralExpression extends LiteralExpression_base {
27 toSlice(this: StringLiteral): SourceSlice;
28}
29export declare type StringLiteral = LiteralExpression & {
30 value: string;
31};
32/**
33 * Returns true if an input {@see ExpressionNode} is a literal.
34 */
35export declare function isLiteral<K extends keyof LiteralTypes = keyof LiteralTypes>(node: ExpressionNode, kind?: K): node is StringLiteral;
36declare const PathExpression_base: import("./node").TypedNodeConstructor<"Path", {
37 ref: VariableReference;
38 tail: readonly SourceSlice[];
39} & import("./node").BaseNodeFields>;
40/**
41 * Corresponds to a path in expression position.
42 *
43 * ```hbs
44 * this
45 * this.x
46 * @x
47 * @x.y
48 * x
49 * x.y
50 * ```
51 */
52export declare class PathExpression extends PathExpression_base {
53}
54declare const CallExpression_base: import("./node").TypedNodeConstructor<"Call", CallFields & import("./node").BaseNodeFields>;
55/**
56 * Corresponds to a parenthesized call expression.
57 *
58 * ```hbs
59 * (x)
60 * (x.y)
61 * (x y)
62 * (x.y z)
63 * ```
64 */
65export declare class CallExpression extends CallExpression_base {
66}
67declare const DeprecatedCallExpression_base: import("./node").TypedNodeConstructor<"DeprecatedCall", {
68 arg: SourceSlice;
69 callee: FreeVarReference;
70} & import("./node").BaseNodeFields>;
71/**
72 * Corresponds to a possible deprecated helper call. Must be:
73 *
74 * 1. A free variable (not this.foo, not @foo, not local).
75 * 2. Argument-less.
76 * 3. In a component invocation's named argument position.
77 * 4. Not parenthesized (not @bar={{(helper)}}).
78 * 5. Not interpolated (not @bar="{{helper}}").
79 *
80 * ```hbs
81 * <Foo @bar={{helper}} />
82 * ```
83 */
84export declare class DeprecatedCallExpression extends DeprecatedCallExpression_base {
85}
86declare const InterpolateExpression_base: import("./node").TypedNodeConstructor<"Interpolate", {
87 parts: PresentArray<ExpressionNode>;
88} & import("./node").BaseNodeFields>;
89/**
90 * Corresponds to an interpolation in attribute value position.
91 *
92 * ```hbs
93 * <a href="{{url}}.html"
94 * ```
95 */
96export declare class InterpolateExpression extends InterpolateExpression_base {
97}
98export declare type ExpressionNode = LiteralExpression | PathExpression | CallExpression | DeprecatedCallExpression | InterpolateExpression;
99export {};
100//# sourceMappingURL=expr.d.ts.map
\No newline at end of file