import type { VNode, Component } from 'vue';
import type { FormItemRule } from 'element-plus';
import type { ExtractPropTypes } from 'vue';
import type { WetProTableColumns } from '../../../pro-table';
export type WetControlCell = {
    disabled?: boolean;
    required?: boolean;
    editabled?: boolean;
    hide?: boolean;
    rules?: FormItemRule[];
};
export type WetEditeTableValueType = 'text' | 'date' | 'switch' | 'slider' | 'rate' | 'select' | 'tree-select' | 'number' | 'autocomplete' | 'color' | 'cascader' | 'time-picker' | 'time-select' | 'actions';
export type WetEditTableColumns = {
    controlCell?: (p: {
        row: any;
        $index: number;
    }) => WetControlCell;
    valueType?: WetEditeTableValueType;
    actions?: ('add' | 'delete' | 'copy' | 'edit')[];
    renderFormField?: VNode | Component;
    render?: (rowInfo: {
        row: any;
        $index: number;
    }, actions?: {
        add: (isbefore?: boolean) => void;
        deleteRow: (index: number) => void;
        saveRow: (row: any) => void;
        copy: (row: any, index?: number) => void;
        cancel: (row: any) => void;
        edit: (row: any) => void;
        readonly: boolean;
    }) => VNode | Component;
} & Omit<WetProTableColumns, 'valueType' | 'render'>;
export type EditableTableStateType = {
    form: any[] | null;
    prop: string | string[];
    change: (v: any, index: number, prop: string[]) => void;
    editabled: boolean;
    disabled: boolean;
    positions: Record<string, HTMLDivElement>;
};
export declare const wetEditTableProps: {
    prop: {
        type: import("vue").PropType<string | string[]>;
    };
    columns: {
        type: import("vue").PropType<WetEditTableColumns[]>;
    };
    modelValue: {
        type: import("vue").PropType<any[] | null>;
        default(): null;
    };
    maxLength: NumberConstructor;
    minLength: NumberConstructor;
    controlled: BooleanConstructor;
    addDefaultRow: {
        type: import("vue").PropType<Record<string, any>>;
        default(): {};
    };
    readonly: BooleanConstructor;
    disabled: BooleanConstructor;
    clearable: BooleanConstructor;
    emptyFormat: {
        type: StringConstructor;
        default: string;
    };
    rowKey: {
        type: import("vue").PropType<string | string[]>;
    };
    fill: BooleanConstructor;
    showIndex: {
        type: BooleanConstructor;
        default: boolean;
    };
    ellipsisProps: {
        type: import("vue").PropType<Partial<import("element-plus").ElTooltipProps>>;
        default(): {
            effect: string;
            placement: string;
        };
    };
    selections: {
        type: import("vue").PropType<any[]>;
        default(): never[];
    };
    rowSelection: {
        type: import("vue").PropType<import("../../../pro-table").WetRowSelection>;
    };
    expandable: {
        type: import("vue").PropType<import("../../../pro-table").WetTableExpandable>;
    };
    mergeDataIndexs: {
        type: import("vue").PropType<(string | string[])[]>;
    };
    data: {
        type: import("vue").PropType<any[]>;
        default: () => never[];
    };
    size: {
        readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    width: (StringConstructor | NumberConstructor)[];
    height: (StringConstructor | NumberConstructor)[];
    maxHeight: (StringConstructor | NumberConstructor)[];
    fit: {
        type: BooleanConstructor;
        default: boolean;
    };
    stripe: BooleanConstructor;
    border: BooleanConstructor;
    showHeader: {
        type: BooleanConstructor;
        default: boolean;
    };
    showSummary: BooleanConstructor;
    sumText: StringConstructor;
    summaryMethod: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").SummaryMethod<any> | undefined>;
    rowClassName: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").ColumnCls<any> | undefined>;
    rowStyle: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").ColumnStyle<any> | undefined>;
    cellClassName: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<any> | undefined>;
    cellStyle: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<any> | undefined>;
    headerRowClassName: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").ColumnCls<any> | undefined>;
    headerRowStyle: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").ColumnStyle<any> | undefined>;
    headerCellClassName: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<any> | undefined>;
    headerCellStyle: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<any> | undefined>;
    highlightCurrentRow: BooleanConstructor;
    currentRowKey: (StringConstructor | NumberConstructor)[];
    emptyText: StringConstructor;
    expandRowKeys: import("vue").PropType<any[] | undefined>;
    defaultExpandAll: BooleanConstructor;
    defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>;
    tooltipEffect: StringConstructor;
    tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "hideAfter" | "transition" | "showArrow" | "appendTo" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter">> | undefined>;
    spanMethod: import("vue").PropType<((data: {
        row: any;
        rowIndex: number;
        column: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<any>;
        columnIndex: number;
    }) => number[] | {
        rowspan: number;
        colspan: number;
    } | undefined) | undefined>;
    selectOnIndeterminate: {
        type: BooleanConstructor;
        default: boolean;
    };
    indent: {
        type: NumberConstructor;
        default: number;
    };
    treeProps: {
        type: import("vue").PropType<{
            hasChildren?: string | undefined;
            children?: string | undefined;
        } | undefined>;
        default: () => {
            hasChildren: string;
            children: string;
        };
    };
    lazy: BooleanConstructor;
    load: import("vue").PropType<((row: any, treeNode: import("element-plus/es/components/table/src/table/defaults").TreeNode, resolve: (data: any[]) => void) => void) | undefined>;
    style: {
        type: import("vue").PropType<import("vue").CSSProperties>;
        default: () => {};
    };
    className: {
        type: StringConstructor;
        default: string;
    };
    tableLayout: {
        type: import("vue").PropType<"auto" | "fixed">;
        default: string;
    };
    scrollbarAlwaysOn: {
        type: BooleanConstructor;
        default: boolean;
    };
    flexible: BooleanConstructor;
    showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "hideAfter" | "transition" | "showArrow" | "appendTo" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter">> | undefined>;
};
export type WetEditTableProps = ExtractPropTypes<typeof wetEditTableProps>;
