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 GreaterThanExpression implements BaseTypedExpression<boolean> {
    readonly name = "greaterThan";
    readonly category: ExpressionCategory;
    readonly syntax = "left > right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare class LessThanExpression implements BaseTypedExpression<boolean> {
    readonly name = "lessThan";
    readonly category: ExpressionCategory;
    readonly syntax = "left < right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare class GreaterThanOrEqualExpression implements BaseTypedExpression<boolean> {
    readonly name = "greaterThanOrEqual";
    readonly category: ExpressionCategory;
    readonly syntax = "left >= right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare class LessThanOrEqualExpression implements BaseTypedExpression<boolean> {
    readonly name = "lessThanOrEqual";
    readonly category: ExpressionCategory;
    readonly syntax = "left <= right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare class EqualityExpression implements BaseTypedExpression<boolean> {
    readonly name = "equals";
    readonly category: ExpressionCategory;
    readonly syntax = "left == right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare class InequalityExpression implements BaseTypedExpression<boolean> {
    readonly name = "notEquals";
    readonly category: ExpressionCategory;
    readonly syntax = "left != right";
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare function createGreaterThanExpression(): GreaterThanExpression;
export declare function createLessThanExpression(): LessThanExpression;
export declare function createGreaterThanOrEqualExpression(): GreaterThanOrEqualExpression;
export declare function createLessThanOrEqualExpression(): LessThanOrEqualExpression;
export declare function createEqualityExpression(): EqualityExpression;
export declare function createInequalityExpression(): InequalityExpression;
export declare const comparisonExpressions: {
    readonly greaterThan: GreaterThanExpression;
    readonly lessThan: LessThanExpression;
    readonly greaterThanOrEqual: GreaterThanOrEqualExpression;
    readonly lessThanOrEqual: LessThanOrEqualExpression;
    readonly equals: EqualityExpression;
    readonly notEquals: InequalityExpression;
};
export {};
//# sourceMappingURL=index.d.ts.map