import * as React from 'react';
import { FormInstance as RcFormInstance } from 'rc-field-form';
import { ScrollOptions, NamePath, InternalNamePath } from '../utils/interface';
export interface FormInstance<Values = any> extends RcFormInstance<Values> {
    scrollToField: (name: NamePath, options?: ScrollOptions) => void;
    /** This is an internal usage. Do not use in your prod */
    __INTERNAL__: {
        /** No! Do not use this in your code! */
        name?: string;
        allDependency?: Object;
        changeHandler?: Object;
        locale?: Object;
        /** No! Do not use this in your code! */
        itemRef: (name: InternalNamePath) => (node: React.ReactElement) => void;
    };
    getFieldInstance: (name: NamePath) => any;
    setFieldValue: (value: any) => void;
    setFieldsValue: (value: any) => void;
    setFieldSource: (value: any) => void;
    setFieldVisible: (value: any) => void;
    setFieldDisabled: (value: any) => void;
    setFieldRequired: (value: any) => void;
    setFieldsDisabled: (value: boolean) => void;
    getFormValue: (nameList?: any, filterFunc?: any) => any;
}
export default function useForm<Values = any>(form?: FormInstance<Values>): [FormInstance<Values>];
