import { PropType } from '@vue/composition-api';
import { TableRowData, PrimaryTableCol, PrimaryTableRowEditContext, PrimaryTableRowValidateContext, TdBaseTableProps, PrimaryTableCellParams } from './type';
import { TableClassName } from './hooks/useClassName';
import { AllValidateResult } from '../form/type';
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;
}
declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    editValue: import("@vue/composition-api").Ref<any>;
    isEdit: import("@vue/composition-api").Ref<boolean>;
    cellNode: import("@vue/composition-api").ComputedRef<any>;
    isAbortEditOnChange: import("@vue/composition-api").ComputedRef<boolean>;
    listeners: import("@vue/composition-api").ComputedRef<{
        [key: string]: Function;
    }>;
    componentProps: import("@vue/composition-api").ComputedRef<import("./type").TablePlainObject>;
    tableEditableCellRef: any;
    errorList: import("@vue/composition-api").Ref<AllValidateResult[]>;
    onEditChange: (val: any, ...args: any) => void;
    Edit1Icon: any;
}> & import("@vue/composition-api").Data, {}, {}, {
    row: PropType<TableRowData>;
    rowIndex: NumberConstructor;
    col: PropType<PrimaryTableCol<TableRowData>>;
    colIndex: NumberConstructor;
    oldCell: PropType<string | ((h: import("vue").CreateElement, props: PrimaryTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    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: import("vue").CreateElement, props: import("./type").BaseTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    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>;
}, import("@vue/composition-api").ExtractPropTypes<{
    row: PropType<TableRowData>;
    rowIndex: NumberConstructor;
    col: PropType<PrimaryTableCol<TableRowData>>;
    colIndex: NumberConstructor;
    oldCell: PropType<string | ((h: import("vue").CreateElement, props: PrimaryTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    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: import("vue").CreateElement, props: import("./type").BaseTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    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>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    readonly: boolean;
    editable: boolean;
    errors: AllValidateResult[];
} & {
    col?: unknown;
    onChange?: (context: PrimaryTableRowEditContext<TableRowData>) => void;
    onValidate?: (context: PrimaryTableRowValidateContext<TableRowData>) => void;
    rowIndex?: number;
    row?: unknown;
    cellEmptyContent?: string | ((h: import("vue").CreateElement, props: import("./type").BaseTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue);
    colIndex?: number;
    tableBaseClass?: {
        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;
    };
    oldCell?: string | ((h: import("vue").CreateElement, props: PrimaryTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue);
    onRuleChange?: (context: PrimaryTableRowEditContext<TableRowData>) => void;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    editValue: import("@vue/composition-api").Ref<any>;
    isEdit: import("@vue/composition-api").Ref<boolean>;
    cellNode: import("@vue/composition-api").ComputedRef<any>;
    isAbortEditOnChange: import("@vue/composition-api").ComputedRef<boolean>;
    listeners: import("@vue/composition-api").ComputedRef<{
        [key: string]: Function;
    }>;
    componentProps: import("@vue/composition-api").ComputedRef<import("./type").TablePlainObject>;
    tableEditableCellRef: any;
    errorList: import("@vue/composition-api").Ref<AllValidateResult[]>;
    onEditChange: (val: any, ...args: any) => void;
    Edit1Icon: any;
}>, import("@vue/composition-api").Data, {}, {}, {}, {}, {}, {
    readonly: boolean;
    editable: boolean;
    errors: AllValidateResult[];
} & {
    col?: unknown;
    onChange?: (context: PrimaryTableRowEditContext<TableRowData>) => void;
    onValidate?: (context: PrimaryTableRowValidateContext<TableRowData>) => void;
    rowIndex?: number;
    row?: unknown;
    cellEmptyContent?: string | ((h: import("vue").CreateElement, props: import("./type").BaseTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue);
    colIndex?: number;
    tableBaseClass?: {
        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;
    };
    oldCell?: string | ((h: import("vue").CreateElement, props: PrimaryTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue);
    onRuleChange?: (context: PrimaryTableRowEditContext<TableRowData>) => void;
}, {
    readonly: boolean;
    editable: boolean;
    errors: AllValidateResult[];
}, true>);
export default _default;
