import { DependencyList, EffectCallback } from 'react';
import { FormConfigs, Options } from './interface';
import FormStore from './store';
import { AutoWiredProps } from './AutoWired';
import { FormProps } from './Form';
import { ItemProps } from './Item';
export declare function useUpdateEffectByCount(effect: EffectCallback, deps?: DependencyList, num?: number): void;
export declare function useUpdateEffect(effect: EffectCallback, deps?: DependencyList): void;
export declare function useStore<T>(formConfigs: FormConfigs<T>, deps?: DependencyList): FormStore<T>;
export declare function useStore<T>(formConfigs: FormConfigs<T>, 
/**
 * 可选配置,目前支持
 * autoHandle 关联处理
 * autoValidate 关联校验
 */
options?: Options<T>, deps?: DependencyList): FormStore<T>;
/**
 * 在现有的FormStore响应时的增加ItemStore
 * @param formStore
 * @param formConfigs
 * @param deps
 * @param options
 */
export declare function useAddItemStore<T>(formStore: FormStore<T>, 
/**
 * 表单配置
 */
formConfigs: Partial<FormConfigs<T>>, deps?: DependencyList, 
/**
 * 可选配置,目前支持交联验证,交联handle
 */
options?: Options<T>): void;
export declare function useAutoLink<T>(formStore: FormStore<T>, options?: Options<T>, deps?: DependencyList): void;
/**
 *  只是为了方便类型验证
 * @param store store
 */
export declare function useAutoWired<T = {
    [key: string]: any;
}>(store: FormStore<T>): (props: AutoWiredProps<T>) => JSX.Element;
/**
 * 只是为了方便类型验证, 利用store校验id是否匹配，达到类型安全的目的
 * @param store store
 */
export declare function useForm<T = {
    [key: string]: any;
}>(store: FormStore<T>): {
    Form: (props: Omit<FormProps<T>, 'store'> & {
        store?: FormStore<T>;
    }) => JSX.Element;
    Item: (props: ItemProps<T>) => JSX.Element;
    AutoWired: (props: AutoWiredProps<T>) => JSX.Element;
};
