import type { TypedExpressionContext, EvaluationType, ValidationResult, EvaluationResult } from '../../../types/base-types';
import type { TypedExpressionImplementation, ExpressionMetadata, ExpressionCategory } from '../../../types/expression-types';
import { BaseExpressionImpl } from '../../base-expression';
type BinaryLogicalInput = any;
type UnaryLogicalInput = any;
export declare class AndExpression extends BaseExpressionImpl<BinaryLogicalInput, boolean> implements TypedExpressionImplementation<BinaryLogicalInput, boolean> {
    readonly name = "and";
    readonly category: ExpressionCategory;
    readonly syntax = "left and right";
    readonly description = "Logical AND operation with comprehensive boolean type coercion";
    readonly inputSchema: import("../../../validation/lightweight-validators").RuntimeValidator<unknown>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: BinaryLogicalInput): Promise<EvaluationResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare class OrExpression extends BaseExpressionImpl<BinaryLogicalInput, boolean> implements TypedExpressionImplementation<BinaryLogicalInput, boolean> {
    readonly name = "or";
    readonly category: ExpressionCategory;
    readonly syntax = "left or right";
    readonly description = "Logical OR operation with comprehensive boolean type coercion";
    readonly inputSchema: import("../../../validation/lightweight-validators").RuntimeValidator<unknown>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: BinaryLogicalInput): Promise<EvaluationResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare class NotExpression extends BaseExpressionImpl<UnaryLogicalInput, boolean> implements TypedExpressionImplementation<UnaryLogicalInput, boolean> {
    readonly name = "not";
    readonly category: ExpressionCategory;
    readonly syntax = "not operand";
    readonly description = "Logical NOT operation with comprehensive boolean type coercion";
    readonly inputSchema: import("../../../validation/lightweight-validators").RuntimeValidator<unknown>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: UnaryLogicalInput): Promise<EvaluationResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare function createAndExpression(): AndExpression;
export declare function createOrExpression(): OrExpression;
export declare function createNotExpression(): NotExpression;
export declare const logicalExpressions: {
    readonly and: AndExpression;
    readonly or: OrExpression;
    readonly not: NotExpression;
};
export {};
//# sourceMappingURL=index.d.ts.map