import { RJSFSchema, UiSchema } from '@rjsf/utils';
import { ConditionalRule, ConditionalEvent, ConditionalActions, ConditionalEngineInstance } from '../types';

export declare class SimpleConditionalEngine implements ConditionalEngineInstance {
    private rules;
    private actions;
    private originalSchema;
    private originalUiSchema;
    constructor(rules: ConditionalRule[], schema: RJSFSchema, uiSchema?: UiSchema, extraActions?: ConditionalActions);
    /**
     * Get nested value from object using dot notation with array index support
     */
    private getNestedValue;
    /**
     * Evaluate a single condition against form data
     */
    private evaluateCondition;
    /**
     * Evaluate field-level condition
     */
    private evaluateFieldCondition;
    addRule(rule: ConditionalRule): void;
    run(formData: any): Promise<ConditionalEvent[]>;
    processEvents(events: ConditionalEvent[], schema: RJSFSchema, uiSchema: UiSchema, formData: any): {
        schema: RJSFSchema;
        uiSchema: UiSchema;
    };
    processFormData(formData: any): Promise<{
        schema: RJSFSchema;
        uiSchema: UiSchema;
        formData: any;
    }>;
    runAndProcess(formData: any, schema: RJSFSchema, uiSchema: UiSchema): Promise<{
        schema: RJSFSchema;
        uiSchema: UiSchema;
        events: ConditionalEvent[];
    }>;
    getAvailableActions(): string[];
    addAction(actionType: string, actionFunction: any): void;
    removeAction(actionType: string): void;
}
