import { ButtonProps } from '@arco-design/web-react';
import { Props as VariablePickerProps } from '../../../components/variablePicker';
import { VariableDefine } from '../../../type';
import { VariableCondition } from '../../type';

export interface ConditionContext {
    draggingId?: string;
    canAcceptIds: string[];
    setDraggingId: (id?: string) => void;
    addCondition: (parentId?: string, isLogic?: boolean) => void;
    removeCondition: (id: string) => void;
    updateOperator: (id: string, operator: VariableCondition.Desc['op']) => void;
    updateValue: <K extends keyof Omit<VariableCondition.Normal, 'id'>>(id: string, key: K, v: VariableCondition.Normal[K]) => void;
    moveCondition: (sourceId: string, targetId: string, before?: boolean) => void;
    useFx?: boolean;
    size?: ButtonProps['size'];
    disabled?: boolean;
    condition?: VariableCondition.Desc;
    pathPicker?: Pick<VariablePickerProps, 'variables' | 'canDynamicMaxLevel' | 'canSelectMinLevel'>;
    variables?: Record<string, VariableDefine.Desc>;
}
export declare const conditionContext: import('react').Context<ConditionContext>;
export declare function useCondition(): ConditionContext;
