import { type RuntimeValidator } from '../../validation/lightweight-validators';
import type { TypedExpressionContext, EvaluationType, ExpressionMetadata, ValidationResult, EvaluationResult } from '../../types/base-types';
import type { ExpressionCategory } from '../../types/expression-types';
import { BaseExpressionImpl } from '../base-expression';
type StringLiteralInput = {
    value: string;
};
type NumberLiteralInput = {
    value: number;
};
type BooleanLiteralInput = {
    value: boolean;
};
type BinaryOperationInput = {
    left: unknown;
    right: unknown;
};
export declare class StringLiteralExpression extends BaseExpressionImpl<StringLiteralInput, string> {
    readonly name = "stringLiteral";
    readonly category: ExpressionCategory;
    readonly syntax = "\"string\" or 'string'";
    readonly description = "String literals with template interpolation support";
    readonly outputType: EvaluationType;
    readonly inputSchema: RuntimeValidator<StringLiteralInput>;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: StringLiteralInput): Promise<EvaluationResult<string>>;
    validate(input: unknown): ValidationResult;
    private interpolateString;
    private resolveExpression;
    private resolveVariable;
}
export declare class NumberLiteralExpression extends BaseExpressionImpl<NumberLiteralInput, number> {
    readonly name = "numberLiteral";
    readonly category: ExpressionCategory;
    readonly syntax = "123 or 3.14";
    readonly description = "Numeric literal with validation";
    readonly inputSchema: RuntimeValidator<NumberLiteralInput>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: NumberLiteralInput): Promise<EvaluationResult<number>>;
    validate(input: unknown): ValidationResult;
}
export declare class BooleanLiteralExpression extends BaseExpressionImpl<BooleanLiteralInput, boolean> {
    readonly name = "booleanLiteral";
    readonly category: ExpressionCategory;
    readonly syntax = "true or false";
    readonly description = "Boolean literal values";
    readonly inputSchema: RuntimeValidator<BooleanLiteralInput>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: BooleanLiteralInput): Promise<EvaluationResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare class AdditionExpression extends BaseExpressionImpl<BinaryOperationInput, number> {
    readonly name = "addition";
    readonly category: ExpressionCategory;
    readonly syntax = "left + right";
    readonly description = "Addition of two numeric values";
    readonly inputSchema: RuntimeValidator<BinaryOperationInput>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: BinaryOperationInput): Promise<EvaluationResult<number>>;
    validate(input: unknown): ValidationResult;
}
export declare class StringConcatenationExpression extends BaseExpressionImpl<BinaryOperationInput, string> {
    readonly name = "stringConcatenation";
    readonly category: ExpressionCategory;
    readonly syntax = "left + right (string concatenation)";
    readonly description = "Concatenation of two values into a string";
    readonly inputSchema: RuntimeValidator<BinaryOperationInput>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: BinaryOperationInput): Promise<EvaluationResult<string>>;
    validate(input: unknown): ValidationResult;
    private convertToString;
}
export declare class MultiplicationExpression extends BaseExpressionImpl<BinaryOperationInput, number> {
    readonly name = "multiplication";
    readonly category: ExpressionCategory;
    readonly syntax = "left * right";
    readonly description = "Multiplication of two numeric values";
    readonly inputSchema: RuntimeValidator<BinaryOperationInput>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: BinaryOperationInput): Promise<EvaluationResult<number>>;
    validate(input: unknown): ValidationResult;
}
export declare function createStringLiteralExpression(): StringLiteralExpression;
export declare function createNumberLiteralExpression(): NumberLiteralExpression;
export declare function createBooleanLiteralExpression(): BooleanLiteralExpression;
export declare function createAdditionExpression(): AdditionExpression;
export declare function createStringConcatenationExpression(): StringConcatenationExpression;
export declare function createMultiplicationExpression(): MultiplicationExpression;
export declare const specialExpressions: {
    readonly stringLiteral: StringLiteralExpression;
    readonly numberLiteral: NumberLiteralExpression;
    readonly booleanLiteral: BooleanLiteralExpression;
    readonly addition: AdditionExpression;
    readonly stringConcatenation: StringConcatenationExpression;
    readonly multiplication: MultiplicationExpression;
};
export type SpecialExpressionName = keyof typeof specialExpressions;
export {};
//# sourceMappingURL=index.d.ts.map