import { CSSProperties, ReactNode } from 'react';
import { FieldValues, UseFormReturn } from 'react-hook-form';
import { CustomHTMLProps } from '../page/pageById';
import { OptionsItem } from '../../index';
interface Props {
    id: string;
    style?: CSSProperties;
    className?: string;
    propsData?: {
        [p: string]: CustomHTMLProps;
    };
    childrenData?: {
        [p: string]: ReactNode;
    };
    itemData?: {
        [p: string]: ReactNode;
    };
    data?: {
        [p: string]: any;
    };
    customOptions?: {
        [p: string]: Array<OptionsItem>;
    };
    onSubmit?: (e?: {
        [p: string]: any;
    }) => void;
    onError?: (e?: {
        [p: string]: any;
    }) => void;
    onGetFormError?: (e: {
        [p: string]: any;
    }) => void;
    autoBcrypt?: boolean;
    onUnMount?: () => void;
    controller?: {
        searchRaw?: string;
        filter?: string;
        sortby?: Array<{
            prop: string;
            direction?: "ASC" | "DESC";
        }>;
        pattern?: {
            returns: Array<string>;
            [p: string]: Array<string> | {
                searchRaw?: string;
                reducers: string;
            };
        };
    } | {
        ids: string;
        maxLength?: number | "none";
    };
    /** Listen form data change */
    onChange?: (ev: {
        data?: {
            [p: string]: any;
        };
    }) => void;
}
interface FormByIdRef {
    onSubmit: (e?: React.BaseSyntheticEvent) => Promise<void>;
    methods: UseFormReturn<FieldValues, any, FieldValues>;
    cols: Array<{
        [p: string]: any;
    }>;
    rels: Array<{
        [p: string]: any;
    }>;
}
export declare const FormById: import('react').ForwardRefExoticComponent<Props & import('react').RefAttributes<FormByIdRef>>;
export {};
//# sourceMappingURL=formById.d.ts.map