import type { ValidationResult, TypedExecutionContext as TypedExpressionContext, EvaluationType, ExpressionMetadata, TypedResult, ExpressionCategory } from '../../types/index';
interface BaseTypedExpression<T> {
    readonly name: string;
    readonly category: string;
    readonly syntax: string;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: unknown): Promise<TypedResult<T>>;
    validate(input: unknown): ValidationResult;
}
export declare class AdditionExpression implements BaseTypedExpression<number> {
    readonly name = "addition";
    readonly category: ExpressionCategory;
    readonly syntax = "left + right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<number>>;
    validate(input: unknown): ValidationResult;
}
export declare class SubtractionExpression implements BaseTypedExpression<number> {
    readonly name = "subtraction";
    readonly category: ExpressionCategory;
    readonly syntax = "left - right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<number>>;
    validate(input: unknown): ValidationResult;
}
export declare class MultiplicationExpression implements BaseTypedExpression<number> {
    readonly name = "multiplication";
    readonly category: ExpressionCategory;
    readonly syntax = "left * right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<number>>;
    validate(input: unknown): ValidationResult;
}
export declare class DivisionExpression implements BaseTypedExpression<number> {
    readonly name = "division";
    readonly category: ExpressionCategory;
    readonly syntax = "left / right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<number>>;
    validate(input: unknown): ValidationResult;
}
export declare class ModuloExpression implements BaseTypedExpression<number> {
    readonly name = "modulo";
    readonly category: ExpressionCategory;
    readonly syntax = "left mod right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<number>>;
    validate(input: unknown): ValidationResult;
}
export declare function createAdditionExpression(): AdditionExpression;
export declare function createSubtractionExpression(): SubtractionExpression;
export declare function createMultiplicationExpression(): MultiplicationExpression;
export declare function createDivisionExpression(): DivisionExpression;
export declare function createModuloExpression(): ModuloExpression;
export declare const mathematicalExpressions: {
    readonly addition: AdditionExpression;
    readonly subtraction: SubtractionExpression;
    readonly multiplication: MultiplicationExpression;
    readonly division: DivisionExpression;
    readonly modulo: ModuloExpression;
};
export {};
//# sourceMappingURL=index.d.ts.map