import { FieldValues, UseFormSetValue, UseFormUnregister, UseFormWatch } from 'react-hook-form';
import { IOption } from '../interfaces/option';
import { IModalLiveDataCondition, IModalRenderCondition } from '../interfaces/modal';
type WatchMeta = {
    name: string;
    type: string | undefined;
};
interface IUseConditionalFieldProps {
    watch: UseFormWatch<FieldValues>;
    elementName: string;
    renderIf?: IModalRenderCondition;
    enableIf?: IModalRenderCondition;
    liveDataConfig?: IModalLiveDataCondition;
    render: boolean;
    enable: boolean;
    checkRender: (formData: Record<string, unknown>, meta: WatchMeta) => Promise<boolean | undefined | null>;
    checkEnable: (formData: Record<string, unknown>, meta: WatchMeta) => Promise<boolean | undefined | null>;
    checkLiveData: (formData: Record<string, unknown>, meta: WatchMeta) => Promise<Array<IOption> | undefined | null>;
    setRender: (value: boolean) => void;
    setEnable: (value: boolean) => void;
    setLiveData?: (value: Array<IOption>) => void;
    setLiveSearching?: (value: boolean) => void;
    unregister?: UseFormUnregister<FieldValues>;
    setValue?: UseFormSetValue<FieldValues>;
    liveDataResetValue?: string | Array<string>;
}
declare const useConditionalField: ({ watch, elementName, renderIf, enableIf, liveDataConfig, render, enable, checkRender, checkEnable, checkLiveData, setRender, setEnable, setLiveData, setLiveSearching, unregister, setValue, liveDataResetValue, }: IUseConditionalFieldProps) => void;
export default useConditionalField;
