import { type RuntimeValidator } from '../../../validation/lightweight-validators';
import type { TypedExpressionContext, EvaluationResult, ExpressionMetadata, BaseTypedExpression, ValidationResult, EvaluationType } from '../../../types/base-types';
import type { ExpressionCategory, LLMDocumentation } from '../../../types/expression-types';
import { BaseExpressionImpl } from '../../base-expression';
export type SupportedConversionType = 'Array' | 'Boolean' | 'Date' | 'Float' | 'Fragment' | 'HTML' | 'Int' | 'JSON' | 'Number' | 'Object' | 'String' | 'Values' | 'Values:Form' | 'Values:JSON' | `Fixed:${number}` | string;
export interface EnhancedTypeConverter<T = unknown> {
    (value: unknown, context: TypedExpressionContext): EvaluationResult<T>;
}
export declare const enhancedConverters: Record<string, EnhancedTypeConverter>;
export declare class AsExpression extends BaseExpressionImpl<{
    value: unknown;
    type: string;
}, unknown> implements BaseTypedExpression<unknown> {
    readonly name = "as";
    readonly category: ExpressionCategory;
    readonly syntax = "value as Type";
    readonly description = "Converts values between different types using the \"as\" keyword";
    readonly outputType: EvaluationType;
    readonly inputSchema: RuntimeValidator<{
        value: unknown;
        type: string;
    }>;
    readonly metadata: ExpressionMetadata;
    readonly documentation: LLMDocumentation;
    evaluate(context: TypedExpressionContext, input: {
        value: unknown;
        type: string;
    }): Promise<EvaluationResult<unknown>>;
    validate(input: unknown): ValidationResult;
}
export declare class IsExpression extends BaseExpressionImpl<{
    value: unknown;
    type: string;
}, boolean> implements BaseTypedExpression<boolean> {
    readonly name = "is";
    readonly category: ExpressionCategory;
    readonly syntax = "value is Type";
    readonly description = "Checks if a value is of a specific type";
    readonly outputType: EvaluationType;
    readonly inputSchema: RuntimeValidator<{
        value: unknown;
        type: string;
    }>;
    readonly metadata: ExpressionMetadata;
    readonly documentation: LLMDocumentation;
    evaluate(context: TypedExpressionContext, input: {
        value: unknown;
        type: string;
    }): Promise<EvaluationResult<boolean>>;
    validate(input: unknown): ValidationResult;
}
export declare const conversionExpressions: {
    readonly as: AsExpression;
    readonly is: IsExpression;
};
export type ConversionExpressionName = keyof typeof conversionExpressions;
export declare function createAsExpression(): AsExpression;
export declare function createIsExpression(): IsExpression;
//# sourceMappingURL=index.d.ts.map