import { FormInstance } from 'element-plus';
import { DiyDataTableColumnItem, DiyDataType, DIY_DATA_TYPE, DiytableOperationType } from './type';
import { HeaderRenderScope } from '../Table/types';
import { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults';
/** 使模板中 element-plus / popper 相关推断在生成 .d.ts 时可命名（TS2883） */
export type { ModifierArguments, ModifierPhases, Obj, PositioningStrategy, State } from '@sxzz/popperjs-es';
declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
    rawData: DiyDataType[];
} & {
    /** 是否可编辑 */
    isEdit?: boolean;
    /** 最大行数 */
    maxRowLength?: number;
    /** 最大添加的列数 */
    maxColLength?: number;
    /** 默认列最小宽度 */
    defaultMinWidth?: number;
    /** 添加行之前钩子 */
    beforeAddRow?: (data: DiyDataType[]) => DiyDataType;
    addRowText?: string;
    addColumnText?: string;
    customAddRow?: boolean;
    customAddColumn?: boolean;
    operationOption?: DiytableOperationType;
    /** 是否开启只能编辑本次新增的列的表头, 默认false, 设置成true后，非本次新增的列的表头不能编辑 */
    canOnlyEditNewlyColumnHeader?: boolean;
    /** 行数据的唯一标识字段名，用于 el-table 的 row-key，默认为 "id" */
    rowKey?: string;
}, {
    /** 初始化数据 */
    initData: (rawdata: DiyDataType[], rawColumns: DiyDataTableColumnItem[]) => void;
    /** 获取数据 */
    getData: (validate?: boolean) => Promise<{
        data: DiyDataType[];
        columns: {
            fixed?: "right" | "left" | undefined;
            id?: string | undefined;
            label?: string | undefined;
            width?: number | undefined;
            index?: number | ((index: number) => number) | undefined;
            filterable?: boolean | {
                text: string;
                value: string;
            }[] | ((value: string, row: DiyDataType, column: TableColumnCtx<DiyDataType>) => void) | undefined;
            filterMethod?: ((value: string, row: DiyDataType, column: TableColumnCtx<DiyDataType>) => void) | undefined;
            className?: string | undefined;
            minWidth?: number | undefined;
            order?: import('element-plus/es/components/table/src/table/defaults.mjs').TableSortOrder | null | undefined;
            realWidth?: number | null | undefined;
            labelClassName?: string | undefined;
            property?: string | undefined;
            prop: string;
            sortable?: string | boolean | undefined;
            sortMethod?: ((a: DiyDataType, b: DiyDataType) => number) | undefined;
            sortBy?: string | string[] | ((row: DiyDataType, index: number, array?: DiyDataType[] | undefined) => string) | undefined;
            resizable?: boolean | undefined;
            columnKey?: string | undefined;
            rawColumnKey?: string | undefined;
            align?: "right" | "left" | "center" | undefined;
            headerAlign?: string | undefined;
            showOverflowTooltip?: boolean | {
                transition?: string | undefined;
                placement?: import('element-plus').Placement | undefined;
                popperClass?: any;
                popperOptions?: {
                    placement?: import('element-plus').Placement | undefined;
                    modifiers?: {
                        name?: any;
                        enabled?: boolean | undefined;
                        phase?: import('@sxzz/popperjs-es').ModifierPhases | undefined;
                        requires?: Array<string> | undefined;
                        requiresIfExists?: Array<string> | undefined;
                        fn?: ((arg0: import('@sxzz/popperjs-es').ModifierArguments<any>) => import('@sxzz/popperjs-es').State | void) | undefined;
                        effect?: ((arg0: import('@sxzz/popperjs-es').ModifierArguments<any>) => (() => void) | void) | undefined;
                        options?: Partial<any> | undefined;
                        data?: import('@sxzz/popperjs-es').Obj | undefined;
                    }[] | undefined;
                    strategy?: import('@sxzz/popperjs-es').PositioningStrategy | undefined;
                    onFirstUpdate?: ((arg0: Partial<import('@sxzz/popperjs-es').State>) => void) | undefined;
                } | undefined;
                appendTo?: (string | HTMLElement) | undefined;
                offset?: number | undefined;
                effect?: import('element-plus').PopperEffect | undefined;
                showArrow?: boolean | undefined;
                enterable?: boolean | undefined;
                showAfter?: number | undefined;
                hideAfter?: number | undefined;
            } | undefined;
            tooltipFormatter?: import('element-plus/es/components/table/src/util.mjs').TableOverflowTooltipFormatter<DiyDataType> | undefined;
            formatter?: (((row: DiyDataType, column: TableColumnCtx<DiyDataType>, cellValue: any, index: number) => import('vue').VNode | string) & ((value: string | DiyDataType) => string)) | undefined;
            selectable?: (((row: DiyDataType, index: number) => boolean) & ((row: DiyDataType, index: number) => boolean)) | undefined;
            reserveSelection?: boolean | undefined;
            filteredValue?: string[] | undefined;
            filters?: {
                text: string;
                value: string;
            }[] | undefined;
            filterPlacement?: string | undefined;
            filterMultiple?: boolean | undefined;
            filterClassName?: string | undefined;
            sortOrders?: (import('element-plus/es/components/table/src/table/defaults.mjs').TableSortOrder | null)[] | undefined;
            colSpan?: number | undefined;
            rowSpan?: number | undefined;
            level?: number | undefined;
            isColumnGroup?: boolean | undefined;
            isSubColumn?: boolean | undefined;
            columns?: {
                id: string;
                realWidth: number | null;
                type: string;
                label: string;
                className: string;
                labelClassName: string;
                property: string;
                prop: string;
                width?: string | number | undefined;
                minWidth: string | number;
                renderHeader: (data: {
                    column: TableColumnCtx<DiyDataType>;
                    $index: number;
                    store: import('element-plus/es/components/table/src/store/index.mjs').Store<DiyDataType>;
                    _self: any;
                }) => import('vue').VNode;
                sortable: boolean | string;
                sortMethod: (a: DiyDataType, b: DiyDataType) => number;
                sortBy: string | string[] | ((row: DiyDataType, index: number, array?: DiyDataType[] | undefined) => string);
                resizable: boolean;
                columnKey: string;
                rawColumnKey: string;
                align: string;
                headerAlign: string;
                showOverflowTooltip?: boolean | {
                    transition?: string | undefined;
                    placement?: import('element-plus').Placement | undefined;
                    popperClass?: any;
                    popperOptions?: {
                        placement?: import('element-plus').Placement | undefined;
                        modifiers?: {
                            name?: any;
                            enabled?: boolean | undefined;
                            phase?: import('@sxzz/popperjs-es').ModifierPhases | undefined;
                            requires?: Array<string> | undefined;
                            requiresIfExists?: Array<string> | undefined;
                            fn?: ((arg0: import('@sxzz/popperjs-es').ModifierArguments<any>) => import('@sxzz/popperjs-es').State | void) | undefined;
                            effect?: ((arg0: import('@sxzz/popperjs-es').ModifierArguments<any>) => (() => void) | void) | undefined;
                            options?: Partial<any> | undefined;
                            data?: import('@sxzz/popperjs-es').Obj | undefined;
                        }[] | undefined;
                        strategy?: import('@sxzz/popperjs-es').PositioningStrategy | undefined;
                        onFirstUpdate?: ((arg0: Partial<import('@sxzz/popperjs-es').State>) => void) | undefined;
                    } | undefined;
                    appendTo?: (string | HTMLElement) | undefined;
                    offset?: number | undefined;
                    effect?: import('element-plus').PopperEffect | undefined;
                    showArrow?: boolean | undefined;
                    enterable?: boolean | undefined;
                    showAfter?: number | undefined;
                    hideAfter?: number | undefined;
                } | undefined;
                tooltipFormatter?: import('element-plus/es/components/table/src/util.mjs').TableOverflowTooltipFormatter<DiyDataType> | undefined;
                fixed: boolean | string;
                formatter: (row: DiyDataType, column: TableColumnCtx<DiyDataType>, cellValue: any, index: number) => import('vue').VNode | string;
                selectable: (row: DiyDataType, index: number) => boolean;
                reserveSelection: boolean;
                filterMethod: (value: string, row: DiyDataType, column: TableColumnCtx<DiyDataType>) => void;
                filteredValue: string[];
                filters: {
                    text: string;
                    value: string;
                }[];
                filterPlacement: string;
                filterMultiple: boolean;
                filterClassName: string;
                index: number | ((index: number) => number);
                sortOrders: (import('element-plus/es/components/table/src/table/defaults.mjs').TableSortOrder | null)[];
                renderCell: (data: any) => import('vue').VNode | import('vue').VNode[];
                colSpan: number;
                rowSpan: number;
                children?: /*elided*/ any[] | undefined;
                level: number;
                filterable: boolean | {
                    text: string;
                    value: string;
                }[] | ((value: string, row: DiyDataType, column: TableColumnCtx<DiyDataType>) => void);
                order: import('element-plus/es/components/table/src/table/defaults.mjs').TableSortOrder | null;
                isColumnGroup: boolean;
                isSubColumn: boolean;
                columns: /*elided*/ any[];
                getColumnIndex: () => number;
                no: number;
                filterOpened?: boolean | undefined;
                renderFilterIcon?: ((scope: any) => import('vue').VNode) | undefined;
                renderExpand?: ((scope: any) => import('vue').VNode) | undefined;
            }[] | undefined;
            getColumnIndex?: (() => number) | undefined;
            no?: number | undefined;
            filterOpened?: boolean | undefined;
            renderFilterIcon?: ((scope: any) => import('vue').VNode) | undefined;
            renderExpand?: ((scope: any) => import('vue').VNode) | undefined;
            key?: number | string | undefined;
            isAdd?: boolean | undefined;
            maxlength?: number | undefined;
            headerMaxlength?: number | undefined;
            placeholder?: string | undefined;
            required?: boolean | undefined;
            requiredMessage?: string | undefined;
            isEditHeader?: boolean | undefined;
            isSameData?: boolean | undefined;
            type?: DIY_DATA_TYPE | undefined;
            completeList?: string[] | undefined;
            showFormatter?: ((value: string) => string) | undefined;
            parser?: ((value: string) => string) | undefined;
            varidate?: ((value: string | number | undefined, row: DiyDataType, index: number) => true | string) | undefined;
            slot?: string | undefined;
            isShow?: boolean | undefined;
            isNewlyColumn?: boolean | undefined;
            showWordLimit?: boolean | undefined;
            headerRender?: ((scope: HeaderRenderScope<DiyDataType>) => import('vue').VNode) | undefined;
        }[];
    } | undefined>;
    /** 更新列配置数据 */
    updateColumn: (index: number, column: DiyDataTableColumnItem) => void;
    /** 重置默认列配置数据 */
    resetColumns: (cols: DiyDataTableColumnItem[], isFullReset?: boolean) => void;
    onAddRow: () => void;
    onAddColumn: () => void;
    formRef: import('vue').Ref<FormInstance | undefined, FormInstance | undefined>;
    getColumns: () => {
        fixed?: "right" | "left" | undefined;
        id?: string | undefined;
        label?: string | undefined;
        width?: number | undefined;
        index?: number | ((index: number) => number) | undefined;
        filterable?: boolean | {
            text: string;
            value: string;
        }[] | ((value: string, row: DiyDataType, column: TableColumnCtx<DiyDataType>) => void) | undefined;
        filterMethod?: ((value: string, row: DiyDataType, column: TableColumnCtx<DiyDataType>) => void) | undefined;
        className?: string | undefined;
        minWidth?: number | undefined;
        order?: import('element-plus/es/components/table/src/table/defaults.mjs').TableSortOrder | null | undefined;
        realWidth?: number | null | undefined;
        labelClassName?: string | undefined;
        property?: string | undefined;
        prop: string;
        sortable?: string | boolean | undefined;
        sortMethod?: ((a: DiyDataType, b: DiyDataType) => number) | undefined;
        sortBy?: string | string[] | ((row: DiyDataType, index: number, array?: DiyDataType[] | undefined) => string) | undefined;
        resizable?: boolean | undefined;
        columnKey?: string | undefined;
        rawColumnKey?: string | undefined;
        align?: "right" | "left" | "center" | undefined;
        headerAlign?: string | undefined;
        showOverflowTooltip?: boolean | {
            transition?: string | undefined;
            placement?: import('element-plus').Placement | undefined;
            popperClass?: any;
            popperOptions?: {
                placement?: import('element-plus').Placement | undefined;
                modifiers?: {
                    name?: any;
                    enabled?: boolean | undefined;
                    phase?: import('@sxzz/popperjs-es').ModifierPhases | undefined;
                    requires?: Array<string> | undefined;
                    requiresIfExists?: Array<string> | undefined;
                    fn?: ((arg0: import('@sxzz/popperjs-es').ModifierArguments<any>) => import('@sxzz/popperjs-es').State | void) | undefined;
                    effect?: ((arg0: import('@sxzz/popperjs-es').ModifierArguments<any>) => (() => void) | void) | undefined;
                    options?: Partial<any> | undefined;
                    data?: import('@sxzz/popperjs-es').Obj | undefined;
                }[] | undefined;
                strategy?: import('@sxzz/popperjs-es').PositioningStrategy | undefined;
                onFirstUpdate?: ((arg0: Partial<import('@sxzz/popperjs-es').State>) => void) | undefined;
            } | undefined;
            appendTo?: (string | HTMLElement) | undefined;
            offset?: number | undefined;
            effect?: import('element-plus').PopperEffect | undefined;
            showArrow?: boolean | undefined;
            enterable?: boolean | undefined;
            showAfter?: number | undefined;
            hideAfter?: number | undefined;
        } | undefined;
        tooltipFormatter?: import('element-plus/es/components/table/src/util.mjs').TableOverflowTooltipFormatter<DiyDataType> | undefined;
        formatter?: (((row: DiyDataType, column: TableColumnCtx<DiyDataType>, cellValue: any, index: number) => import('vue').VNode | string) & ((value: string | DiyDataType) => string)) | undefined;
        selectable?: (((row: DiyDataType, index: number) => boolean) & ((row: DiyDataType, index: number) => boolean)) | undefined;
        reserveSelection?: boolean | undefined;
        filteredValue?: string[] | undefined;
        filters?: {
            text: string;
            value: string;
        }[] | undefined;
        filterPlacement?: string | undefined;
        filterMultiple?: boolean | undefined;
        filterClassName?: string | undefined;
        sortOrders?: (import('element-plus/es/components/table/src/table/defaults.mjs').TableSortOrder | null)[] | undefined;
        colSpan?: number | undefined;
        rowSpan?: number | undefined;
        level?: number | undefined;
        isColumnGroup?: boolean | undefined;
        isSubColumn?: boolean | undefined;
        columns?: {
            id: string;
            realWidth: number | null;
            type: string;
            label: string;
            className: string;
            labelClassName: string;
            property: string;
            prop: string;
            width?: string | number | undefined;
            minWidth: string | number;
            renderHeader: (data: {
                column: TableColumnCtx<DiyDataType>;
                $index: number;
                store: import('element-plus/es/components/table/src/store/index.mjs').Store<DiyDataType>;
                _self: any;
            }) => import('vue').VNode;
            sortable: boolean | string;
            sortMethod: (a: DiyDataType, b: DiyDataType) => number;
            sortBy: string | string[] | ((row: DiyDataType, index: number, array?: DiyDataType[] | undefined) => string);
            resizable: boolean;
            columnKey: string;
            rawColumnKey: string;
            align: string;
            headerAlign: string;
            showOverflowTooltip?: boolean | {
                transition?: string | undefined;
                placement?: import('element-plus').Placement | undefined;
                popperClass?: any;
                popperOptions?: {
                    placement?: import('element-plus').Placement | undefined;
                    modifiers?: {
                        name?: any;
                        enabled?: boolean | undefined;
                        phase?: import('@sxzz/popperjs-es').ModifierPhases | undefined;
                        requires?: Array<string> | undefined;
                        requiresIfExists?: Array<string> | undefined;
                        fn?: ((arg0: import('@sxzz/popperjs-es').ModifierArguments<any>) => import('@sxzz/popperjs-es').State | void) | undefined;
                        effect?: ((arg0: import('@sxzz/popperjs-es').ModifierArguments<any>) => (() => void) | void) | undefined;
                        options?: Partial<any> | undefined;
                        data?: import('@sxzz/popperjs-es').Obj | undefined;
                    }[] | undefined;
                    strategy?: import('@sxzz/popperjs-es').PositioningStrategy | undefined;
                    onFirstUpdate?: ((arg0: Partial<import('@sxzz/popperjs-es').State>) => void) | undefined;
                } | undefined;
                appendTo?: (string | HTMLElement) | undefined;
                offset?: number | undefined;
                effect?: import('element-plus').PopperEffect | undefined;
                showArrow?: boolean | undefined;
                enterable?: boolean | undefined;
                showAfter?: number | undefined;
                hideAfter?: number | undefined;
            } | undefined;
            tooltipFormatter?: import('element-plus/es/components/table/src/util.mjs').TableOverflowTooltipFormatter<DiyDataType> | undefined;
            fixed: boolean | string;
            formatter: (row: DiyDataType, column: TableColumnCtx<DiyDataType>, cellValue: any, index: number) => import('vue').VNode | string;
            selectable: (row: DiyDataType, index: number) => boolean;
            reserveSelection: boolean;
            filterMethod: (value: string, row: DiyDataType, column: TableColumnCtx<DiyDataType>) => void;
            filteredValue: string[];
            filters: {
                text: string;
                value: string;
            }[];
            filterPlacement: string;
            filterMultiple: boolean;
            filterClassName: string;
            index: number | ((index: number) => number);
            sortOrders: (import('element-plus/es/components/table/src/table/defaults.mjs').TableSortOrder | null)[];
            renderCell: (data: any) => import('vue').VNode | import('vue').VNode[];
            colSpan: number;
            rowSpan: number;
            children?: /*elided*/ any[] | undefined;
            level: number;
            filterable: boolean | {
                text: string;
                value: string;
            }[] | ((value: string, row: DiyDataType, column: TableColumnCtx<DiyDataType>) => void);
            order: import('element-plus/es/components/table/src/table/defaults.mjs').TableSortOrder | null;
            isColumnGroup: boolean;
            isSubColumn: boolean;
            columns: /*elided*/ any[];
            getColumnIndex: () => number;
            no: number;
            filterOpened?: boolean | undefined;
            renderFilterIcon?: ((scope: any) => import('vue').VNode) | undefined;
            renderExpand?: ((scope: any) => import('vue').VNode) | undefined;
        }[] | undefined;
        getColumnIndex?: (() => number) | undefined;
        no?: number | undefined;
        filterOpened?: boolean | undefined;
        renderFilterIcon?: ((scope: any) => import('vue').VNode) | undefined;
        renderExpand?: ((scope: any) => import('vue').VNode) | undefined;
        key?: number | string | undefined;
        isAdd?: boolean | undefined;
        maxlength?: number | undefined;
        headerMaxlength?: number | undefined;
        placeholder?: string | undefined;
        required?: boolean | undefined;
        requiredMessage?: string | undefined;
        isEditHeader?: boolean | undefined;
        isSameData?: boolean | undefined;
        type?: DIY_DATA_TYPE | undefined;
        completeList?: string[] | undefined;
        showFormatter?: ((value: string) => string) | undefined;
        parser?: ((value: string) => string) | undefined;
        varidate?: ((value: string | number | undefined, row: DiyDataType, index: number) => true | string) | undefined;
        slot?: string | undefined;
        isShow?: boolean | undefined;
        isNewlyColumn?: boolean | undefined;
        showWordLimit?: boolean | undefined;
        headerRender?: ((scope: HeaderRenderScope<DiyDataType>) => import('vue').VNode) | undefined;
    }[];
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:rawData": (value: DiyDataType[]) => any;
}, string, import('vue').PublicProps, Readonly<{
    rawData: DiyDataType[];
} & {
    /** 是否可编辑 */
    isEdit?: boolean;
    /** 最大行数 */
    maxRowLength?: number;
    /** 最大添加的列数 */
    maxColLength?: number;
    /** 默认列最小宽度 */
    defaultMinWidth?: number;
    /** 添加行之前钩子 */
    beforeAddRow?: (data: DiyDataType[]) => DiyDataType;
    addRowText?: string;
    addColumnText?: string;
    customAddRow?: boolean;
    customAddColumn?: boolean;
    operationOption?: DiytableOperationType;
    /** 是否开启只能编辑本次新增的列的表头, 默认false, 设置成true后，非本次新增的列的表头不能编辑 */
    canOnlyEditNewlyColumnHeader?: boolean;
    /** 行数据的唯一标识字段名，用于 el-table 的 row-key，默认为 "id" */
    rowKey?: string;
}> & Readonly<{
    "onUpdate:rawData"?: ((value: DiyDataType[]) => any) | undefined;
}>, {
    rowKey: string;
    isEdit: boolean;
    maxRowLength: number;
    maxColLength: number;
    defaultMinWidth: number;
    addRowText: string;
    addColumnText: string;
    customAddRow: boolean;
    customAddColumn: boolean;
    canOnlyEditNewlyColumnHeader: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
    formRef: ({
        $: import('vue').ComponentInternalInstance;
        $data: {};
        $props: {
            readonly model?: Record<string, any> | undefined;
            readonly rules?: import('element-plus').FormRules | undefined;
            readonly labelPosition?: "left" | "right" | "top" | undefined;
            readonly requireAsteriskPosition?: "left" | "right" | undefined;
            readonly labelWidth?: string | number | undefined;
            readonly labelSuffix?: string | undefined;
            readonly inline?: boolean | undefined;
            readonly inlineMessage?: boolean | undefined;
            readonly statusIcon?: boolean | undefined;
            readonly showMessage?: boolean | undefined;
            readonly validateOnRuleChange?: boolean | undefined;
            readonly hideRequiredAsterisk?: boolean | undefined;
            readonly scrollToError?: boolean | undefined;
            readonly scrollIntoViewOptions?: (ScrollIntoViewOptions | boolean) | undefined;
            readonly size?: import('element-plus').ComponentSize | undefined;
            readonly disabled?: boolean | undefined;
            readonly onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined | undefined;
        } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
        $attrs: import('vue').Attrs;
        $refs: {
            [x: string]: unknown;
        };
        $slots: Readonly<{
            [name: string]: import('vue').Slot<any> | undefined;
        }>;
        $root: import('vue').ComponentPublicInstance | null;
        $parent: import('vue').ComponentPublicInstance | null;
        $host: Element | null;
        $emit: (event: "validate", prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void;
        $el: any;
        $options: import('vue').ComponentOptionsBase<Readonly<import('element-plus').FormProps> & Readonly<{
            onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined;
        }>, {
            validate: (callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
            validateField: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
            resetFields: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>) => void;
            clearValidate: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>) => void;
            scrollToField: (prop: import('element-plus').FormItemProp) => void;
            getField: (prop: import('element-plus').FormItemProp) => import('element-plus').FormItemContext | undefined;
            fields: import('vue').Reactive<import('element-plus').FormItemContext[]>;
            setInitialValues: (initModel: Record<string, any>) => void;
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
            validate: (prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void;
        }, string, {
            scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
            labelWidth: string | number;
            labelPosition: "left" | "right" | "top";
            requireAsteriskPosition: "left" | "right";
            labelSuffix: string;
            showMessage: boolean;
            validateOnRuleChange: boolean;
        }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: typeof import('vue').nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
    } & Readonly<{
        scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
        labelWidth: string | number;
        labelPosition: "left" | "right" | "top";
        requireAsteriskPosition: "left" | "right";
        labelSuffix: string;
        showMessage: boolean;
        validateOnRuleChange: boolean;
    }> & Omit<Readonly<import('element-plus').FormProps> & Readonly<{
        onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined;
    }>, "labelPosition" | "requireAsteriskPosition" | "labelWidth" | "labelSuffix" | "showMessage" | "validateOnRuleChange" | "scrollIntoViewOptions" | "validate" | "validateField" | "resetFields" | "clearValidate" | "scrollToField" | "getField" | "fields" | "setInitialValues"> & {
        validate: (callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
        validateField: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
        resetFields: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>) => void;
        clearValidate: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>) => void;
        scrollToField: (prop: import('element-plus').FormItemProp) => void;
        getField: (prop: import('element-plus').FormItemProp) => import('element-plus').FormItemContext | undefined;
        fields: import('vue').Reactive<import('element-plus').FormItemContext[]>;
        setInitialValues: (initModel: Record<string, any>) => void;
    } & {} & import('vue').ComponentCustomProperties & {} & {
        $slots: {
            default?: (props: {}) => any;
        };
    }) | null;
}, any>, Partial<Record<string, (_: {
    row: any;
    $index: any;
}) => any>> & Partial<Record<string, (_: {
    row: any;
    $index: any;
}) => any>> & {
    operation?(_: {
        row: DiyDataType;
        $index: any;
    }): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
