///
///
import { BoundedArrayType, Char } from "../../compilation/types";
import { ExpressionContext, ConstructDescription, SemanticContext } from "../../compilation/contexts";
import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct";
import { Expression, t_TypedExpression } from "./Expression";
import { RuntimeExpression } from "./RuntimeExpression";
import { StringLiteralExpressionOutlet } from "../../../view/constructs/ExpressionOutlets";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { AnalyticConstruct } from "../../../analysis/predicates";
import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator";
import { StringLiteralASTNode } from "../../../ast/ast_expressions";
export declare class StringLiteralExpression extends Expression {
readonly construct_type = "string_literal_expression";
readonly type: BoundedArrayType;
readonly valueCategory = "lvalue";
readonly str: string;
constructor(context: ExpressionContext, ast: StringLiteralASTNode | undefined, str: string);
isStringLiteralExpression(): boolean;
static createFromAST(ast: StringLiteralASTNode, context: ExpressionContext): StringLiteralExpression;
createDefaultOutlet(this: CompiledStringLiteralExpression, element: JQuery, parent?: ConstructOutlet): StringLiteralExpressionOutlet;
describeEvalResult(depth: number): ConstructDescription;
isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean;
}
export interface TypedStringLiteralExpression extends StringLiteralExpression, t_TypedExpression {
}
export interface CompiledStringLiteralExpression extends TypedStringLiteralExpression, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
}
export declare class RuntimeStringLiteralExpression extends RuntimeExpression, "lvalue", CompiledStringLiteralExpression> {
constructor(model: CompiledStringLiteralExpression, parent: RuntimeConstruct);
protected upNextImpl(): void;
protected stepForwardImpl(): void;
}