import { FormInstance } from 'element-plus';
import { ComponentPublicInstance, ComputedRef, PropType, Ref } from 'vue';
import { FormEventType, FormItem, PowerfulFormData, PowerfulFormPTHeaders, PowerfulFormProps, SetDataType } from '../../index';

/**
 * form-view 组件 props
 */
export declare const formViewProps: {
    formItems: {
        type: PropType<PowerfulFormProps["formItems"]>;
        default: () => never[];
    };
    extendTable: {
        type: PropType<PowerfulFormProps["extendTable"]>;
        default: boolean;
    };
    formDataDefault: {
        type: PropType<PowerfulFormProps["formDataDefault"]>;
        default: () => {};
    };
    disabled: {
        type: PropType<PowerfulFormProps["disabled"]>;
        default: boolean;
    };
    showType: {
        type: PropType<PowerfulFormProps["showType"]>;
        default: undefined;
    };
    property: {
        type: PropType<PowerfulFormProps["property"]>;
        default: () => {};
    };
    apis: {
        type: PropType<PowerfulFormProps["apis"]>;
        default: undefined;
    };
    showLabel: {
        type: PropType<PowerfulFormProps["showLabel"]>;
        default: boolean;
    };
};
/**
 * components Props
 */
export declare const componentProps: () => {
    formItem: {
        type: PropType<FormItem>;
        default: () => {};
    };
    formData: {
        type: PropType<PowerfulFormData["formData"]>;
        default: () => {};
    };
    index: {
        type: PropType<number>;
    };
    inline: {
        type: PropType<boolean>;
        default: boolean;
    };
};
export declare const isProperty: <T, R>(e: T, property?: R | ((e: T) => R)) => R;
/**
 * form-view 组件 数据
 */
export declare const useFormViewState: (props: PowerfulFormProps) => {
    formViewData: PowerfulFormData;
    formRenderItems: ComputedRef<FormItem[]>;
    elFormRef: Ref<FormInstance | null, FormInstance | null>;
    transformHeader: (headerLists: PowerfulFormPTHeaders[]) => void;
};
export declare const useFunction: (props: PowerfulFormProps, formData: PowerfulFormData["formData"], elFormRef: Ref<FormInstance | null>, transformHeader: (headerLists: PowerfulFormPTHeaders[]) => void) => {
    submitForm: (params?: object, options?: {
        successMessage?: string;
        errorMessage?: string;
    }) => import('element-plus').FormValidationResult;
    resetForm: () => void;
    refreshRender: (refName?: string, proxy?: ComponentPublicInstance) => void;
    visibleFormTrigger: () => boolean;
    bindAttr(formItem: FormItem, formData: PowerfulFormData["formData"], index: number): {
        formItem: FormItem;
        formData: PowerfulFormData["formData"];
        index: number;
        inline: boolean;
    };
};
/**
 * 对 components文件夹下组件内部事件处理
 * @param {{ formData: PowerfulFormData['formData']; index: number; formItem: FormItem<T> }} props 事件携带的一个参数数据
 */
export declare const useEvent: <T extends FormEventType>(props: {
    formData: PowerfulFormData["formData"];
    formItem: FormItem;
    index: number;
}) => {
    event: (eventType: keyof NonNullable<SetDataType<T>["on"]>, ...arg: any) => void;
};
