import { GBaseStep } from '../@Types/GenericFormSteps'; import { ValuesStore } from '../States/SiteSlice'; import { RootState } from '../Utils/store'; import { Form } from '../@Types'; import { DependencyStore } from '../Form/Form'; import { FormStep } from '../@Types/FormStep'; import { FieldError, RefCallBack, UseControllerProps, useController } from 'react-hook-form'; import { Condition } from '../@Types/Condition'; import { CBRFormStep } from '../@Types/CBRFormStep'; export declare const selectOriginalValue: ((state: RootState, step: GBaseStep) => any) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: ValuesStore, resultFuncArgs_1: GBaseStep) => any; memoizedResultFunc: ((resultFuncArgs_0: ValuesStore, resultFuncArgs_1: GBaseStep) => any) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => any; dependencies: [(state: RootState) => ValuesStore, (_state: RootState, step: GBaseStep) => GBaseStep]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("reselect").weakMapMemoize; argsMemoize: typeof import("reselect").weakMapMemoize; }; export interface StepDependency { originalValue: any; isDependency: boolean; handleStepDep: (value: any) => void; } export declare const useStepDependency: (step: GBaseStep, defaultValue?: any) => StepDependency; export declare const selectStepDependencies: ((state: RootState, _step: GBaseStep, form: Form) => { invalids: string[]; emptyDep: boolean; }) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: DependencyStore, resultFuncArgs_1: GBaseStep, resultFuncArgs_2: Form) => { invalids: string[]; emptyDep: boolean; }; memoizedResultFunc: ((resultFuncArgs_0: DependencyStore, resultFuncArgs_1: GBaseStep, resultFuncArgs_2: Form) => { invalids: string[]; emptyDep: boolean; }) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => { invalids: string[]; emptyDep: boolean; }; dependencies: [(state: RootState) => DependencyStore, (_state: RootState, step: GBaseStep) => GBaseStep, (_state: RootState, _step: GBaseStep, form: Form) => Form]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("reselect").weakMapMemoize; argsMemoize: typeof import("reselect").weakMapMemoize; }; export interface UseFormStepOptions { defaultValue: ValueType; /** If true, will not trigger onChange until the user has finished typing */ debounce?: boolean; rules?: UseControllerProps['rules']; /** If the step should trigger a filler(root StepFiller) size change */ sizeChange?: boolean; } export interface FormStepFunctions { value: ValueType; ref: RefCallBack; onChange: (value: ValueType) => void; error: FieldError | undefined; field: Omit['field'], 'ref' | 'value' | 'onChange'>; } export declare const useFormStep: (step: GBaseStep, { rules, debounce, sizeChange, defaultValue }: UseFormStepOptions) => FormStepFunctions; export declare const selectDependencies: ((state: RootState, idDeps: string[] | undefined) => DependencyStore) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: DependencyStore, resultFuncArgs_1: string[]) => DependencyStore; memoizedResultFunc: ((resultFuncArgs_0: DependencyStore, resultFuncArgs_1: string[]) => DependencyStore) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => DependencyStore; dependencies: [(state: RootState) => DependencyStore, (_state: RootState, idDeps: string[] | undefined) => string[]]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("reselect").weakMapMemoize; argsMemoize: typeof import("reselect").weakMapMemoize; }; export declare const useCondition: (condition?: Condition) => boolean; export declare const calcStepDeps: (step: FormStep | CBRFormStep) => string[]; export declare const recursivelyCalcConditionSteps: (condition: Condition | undefined) => string[];