import { PropType } from 'vue';
import { TableRowData, PrimaryTableCol, PrimaryTableRowEditContext, PrimaryTableRowValidateContext, TdBaseTableProps } from './type';
import { TableClassName } from './hooks/useClassName';
import { AllValidateResult } from '../form/type';
export interface OnEditableChangeContext<T> extends PrimaryTableRowEditContext<T> {
    isEdit: boolean;
    validateEdit: (trigger: 'self' | 'parent') => Promise<true | AllValidateResult[]>;
}
export interface EditableCellProps {
    row: TableRowData;
    rowIndex: number;
    col: PrimaryTableCol<TableRowData>;
    colIndex: number;
    oldCell: PrimaryTableCol<TableRowData>['cell'];
    tableBaseClass?: TableClassName['tableBaseClass'];
    editable?: boolean;
    readonly?: boolean;
    errors?: AllValidateResult[];
    cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];
    onChange?: (context: PrimaryTableRowEditContext<TableRowData>) => void;
    onValidate?: (context: PrimaryTableRowValidateContext<TableRowData>) => void;
    onRuleChange?: (context: PrimaryTableRowEditContext<TableRowData>) => void;
    onEditableChange?: (context: OnEditableChangeContext<TableRowData>) => void;
}
declare const _default: import("vue").DefineComponent<{
    row: PropType<TableRowData>;
    rowIndex: NumberConstructor;
    col: PropType<PrimaryTableCol<TableRowData>>;
    colIndex: NumberConstructor;
    oldCell: PropType<string | ((h: typeof import("vue").h, props: import("./type").PrimaryTableCellParams<TableRowData>) => import("..").SlotReturnValue)>;
    tableBaseClass: PropType<{
        table: string;
        columnResizableTable: string;
        overflowVisible: string;
        body: string;
        content: string;
        topContent: string;
        bottomContent: string;
        paginationWrap: string;
        tdLastRow: string;
        tdFirstCol: string;
        thCellInner: string;
        tableRowEdit: string;
        cellEditable: string;
        cellEditWrap: string;
        bordered: string;
        striped: string;
        hover: string;
        loading: string;
        rowspanAndColspan: string;
        empty: string;
        emptyRow: string;
        headerFixed: string;
        columnFixed: string;
        widthOverflow: string;
        multipleHeader: string;
        footerAffixed: string;
        horizontalBarAffixed: string;
        affixedHeader: string;
        affixedHeaderElm: string;
        affixedFooterElm: string;
        affixedFooterWrap: string;
        scrollbarDivider: string;
        fullHeight: string;
        resizeLine: string;
        obviousScrollbar: string;
        affixedHeaderWrap: string;
    }>;
    cellEmptyContent: PropType<string | ((h: typeof import("vue").h, props: import("./type").BaseTableCellParams<TableRowData>) => import("..").SlotReturnValue)>;
    editable: {
        type: BooleanConstructor;
        default: any;
    };
    readonly: {
        type: BooleanConstructor;
    };
    errors: {
        type: PropType<AllValidateResult[]>;
        default: any;
    };
    onChange: PropType<(context: PrimaryTableRowEditContext<TableRowData>) => void>;
    onValidate: PropType<(context: PrimaryTableRowValidateContext<TableRowData>) => void>;
    onRuleChange: PropType<(context: PrimaryTableRowEditContext<TableRowData>) => void>;
    onEditableChange: PropType<(context: OnEditableChangeContext<TableRowData>) => void>;
}, () => any, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    row: PropType<TableRowData>;
    rowIndex: NumberConstructor;
    col: PropType<PrimaryTableCol<TableRowData>>;
    colIndex: NumberConstructor;
    oldCell: PropType<string | ((h: typeof import("vue").h, props: import("./type").PrimaryTableCellParams<TableRowData>) => import("..").SlotReturnValue)>;
    tableBaseClass: PropType<{
        table: string;
        columnResizableTable: string;
        overflowVisible: string;
        body: string;
        content: string;
        topContent: string;
        bottomContent: string;
        paginationWrap: string;
        tdLastRow: string;
        tdFirstCol: string;
        thCellInner: string;
        tableRowEdit: string;
        cellEditable: string;
        cellEditWrap: string;
        bordered: string;
        striped: string;
        hover: string;
        loading: string;
        rowspanAndColspan: string;
        empty: string;
        emptyRow: string;
        headerFixed: string;
        columnFixed: string;
        widthOverflow: string;
        multipleHeader: string;
        footerAffixed: string;
        horizontalBarAffixed: string;
        affixedHeader: string;
        affixedHeaderElm: string;
        affixedFooterElm: string;
        affixedFooterWrap: string;
        scrollbarDivider: string;
        fullHeight: string;
        resizeLine: string;
        obviousScrollbar: string;
        affixedHeaderWrap: string;
    }>;
    cellEmptyContent: PropType<string | ((h: typeof import("vue").h, props: import("./type").BaseTableCellParams<TableRowData>) => import("..").SlotReturnValue)>;
    editable: {
        type: BooleanConstructor;
        default: any;
    };
    readonly: {
        type: BooleanConstructor;
    };
    errors: {
        type: PropType<AllValidateResult[]>;
        default: any;
    };
    onChange: PropType<(context: PrimaryTableRowEditContext<TableRowData>) => void>;
    onValidate: PropType<(context: PrimaryTableRowValidateContext<TableRowData>) => void>;
    onRuleChange: PropType<(context: PrimaryTableRowEditContext<TableRowData>) => void>;
    onEditableChange: PropType<(context: OnEditableChangeContext<TableRowData>) => void>;
}>>, {
    readonly: boolean;
    editable: boolean;
    errors: AllValidateResult[];
}, {}>;
export default _default;
