UNPKG

qnce-engine

Version:

Core QNCE (Quantum Narrative Convergence Engine) - Framework agnostic narrative engine with performance optimization

69 lines 2.16 kB
import { QNCEState } from './core'; /** * Error thrown when condition evaluation fails */ export declare class ConditionEvaluationError extends Error { readonly expression?: string | undefined; readonly cause?: Error | undefined; constructor(message: string, expression?: string | undefined, cause?: Error | undefined); } /** * Context object passed to condition evaluators */ export interface ConditionContext { /** Current engine state */ state: QNCEState; /** Current timestamp for time-based conditions */ timestamp: number; /** Additional custom context data */ customData?: Record<string, unknown>; } /** * Custom evaluator function signature */ export type CustomEvaluatorFunction = (expression: string, context: ConditionContext) => boolean; /** * Condition evaluator service for parsing and executing conditional expressions */ export declare class ConditionEvaluator { private customEvaluator?; private functionCache; private maxCacheSize; /** * Set a custom evaluator function for handling complex conditions */ setCustomEvaluator(evaluator: CustomEvaluatorFunction): void; /** * Clear the custom evaluator */ clearCustomEvaluator(): void; /** * Evaluate a condition expression against the provided context */ evaluate(expression: string, context: ConditionContext): boolean; /** * Built-in expression evaluator with support for common patterns */ private evaluateBuiltIn; /** * Sanitize expression to prevent code injection */ private sanitizeExpression; /** * Create a safe evaluation context from the condition context */ private createEvaluationContext; /** * Validate that an expression is syntactically correct without evaluating it */ validateExpression(expression: string): { valid: boolean; error?: string; }; /** * Get list of flag names referenced in an expression */ getReferencedFlags(expression: string): string[]; } export declare const conditionEvaluator: ConditionEvaluator; //# sourceMappingURL=condition.d.ts.map