import { default as React } from 'react';
import { RJSFSchema, UiSchema } from '@rjsf/utils';
import { ConditionalRule, ConditionalConfig, ConditionalState } from '../types';
import { DynamicArrayConditionalEngine } from './DynamicArrayConditionalEngine';

interface ConditionalContextType {
    state: ConditionalState;
    processor: DynamicArrayConditionalEngine | null;
    processConditionals: (formData: any) => Promise<void>;
    updateRules: (rules: ConditionalRule[]) => void;
    addAction: (actionType: string, actionFunction: any) => void;
    removeAction: (actionType: string) => void;
    getAvailableActions: () => string[];
}
export interface ConditionalProviderProps {
    children: React.ReactNode;
    schema: RJSFSchema;
    uiSchema?: UiSchema;
    config?: ConditionalConfig;
    onSchemaChange?: (schemas: {
        schema: RJSFSchema;
        uiSchema: UiSchema;
    }) => void;
}
export declare const ConditionalProvider: React.FC<ConditionalProviderProps>;
export declare const useConditionals: () => ConditionalContextType;
export declare const useConditionalSchema: () => {
    schema: RJSFSchema;
    uiSchema: UiSchema;
    isProcessing: boolean;
};
export {};
