import type { PropType, SetupContext } from 'vue';
import { h } from 'vue';
import type { PaginationProps } from '..';
import type { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';
import type { AttachNode } from '../common';
import type { BaseTableCellParams, RowspanColspan, TableRowData, TdBaseTableProps, TdPrimaryTableProps } from './type';
import type { RowAndColFixedPosition } from './interface';
import type { SkipSpansValue } from './hooks/useRowspanAndColspan';
export interface RenderTdExtra {
    rowAndColFixedPosition: RowAndColFixedPosition;
    columnLength: number;
    dataLength: number;
    cellSpans: RowspanColspan;
    cellEmptyContent: TdBaseTableProps['cellEmptyContent'];
}
export interface RenderEllipsisCellParams {
    cellNode: any;
}
export declare type TrCommonProps = Pick<TdPrimaryTableProps, TrPropsKeys>;
export declare const TABLE_PROPS: readonly ["rowKey", "rowClassName", "columns", "fixedRows", "footData", "rowAttributes", "rowspanAndColspan", "scroll", "cellEmptyContent", "pagination", "attach", "onCellClick", "onRowClick", "onRowDblclick", "onRowMouseover", "onRowMousedown", "onRowMouseenter", "onRowMouseleave", "onRowMouseup"];
export declare type TrPropsKeys = typeof TABLE_PROPS[number];
export interface TrProps extends TrCommonProps {
    rowKey: string;
    row: TableRowData;
    rowIndex: number;
    ellipsisOverlayClassName: string;
    classPrefix: string;
    dataLength: number;
    rowAndColFixedPosition?: RowAndColFixedPosition;
    skipSpansMap?: Map<string, SkipSpansValue>;
    tableElm?: any;
    tableContentElm?: any;
    cellEmptyContent: TdBaseTableProps['cellEmptyContent'];
    virtualConfig: VirtualScrollConfig;
    attach?: AttachNode;
}
export declare const ROW_LISTENERS: string[];
export declare function renderCell(params: BaseTableCellParams<TableRowData>, slots: SetupContext['slots'], extra?: {
    cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];
    pagination?: PaginationProps;
}): any;
declare const _default: import("vue").DefineComponent<{
    tableElm: {};
    tableContentElm: {};
    columns: {
        type: PropType<import("./type").BaseTableCol<TableRowData>[]>;
        default: () => import("./type").BaseTableCol<TableRowData>[];
    };
    scroll: {
        type: PropType<import("..").InfinityScroll>;
    };
    pagination: {
        type: PropType<import("..").TdPaginationProps>;
    };
    attach: {
        type: PropType<AttachNode>;
    };
    onCellClick: PropType<(context: import("./type").BaseTableCellEventContext<TableRowData>) => void>;
    cellEmptyContent: {
        type: PropType<string | ((h: typeof h, props: BaseTableCellParams<TableRowData>) => import("..").SlotReturnValue)>;
    };
    fixedRows: {
        type: PropType<number[]>;
    };
    footData: {
        type: PropType<TableRowData[]>;
        default: () => TableRowData[];
    };
    rowAttributes: {
        type: PropType<import("./type").TableRowAttributes<TableRowData>>;
    };
    rowClassName: {
        type: PropType<import("..").ClassName | ((params: import("./type").RowClassNameParams<TableRowData>) => import("..").ClassName)>;
    };
    rowKey: {
        type: StringConstructor;
        default: string;
        required: boolean;
    };
    rowspanAndColspan: {
        type: PropType<import("./type").TableRowspanAndColspanFunc<TableRowData>>;
    };
    onRowClick: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowDblclick: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMousedown: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseenter: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseleave: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseover: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseup: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    row: PropType<TableRowData>;
    rowIndex: NumberConstructor;
    dataLength: NumberConstructor;
    ellipsisOverlayClassName: StringConstructor;
    classPrefix: StringConstructor;
    rowAndColFixedPosition: PropType<RowAndColFixedPosition>;
    skipSpansMap: PropType<Map<string, SkipSpansValue>>;
    virtualConfig: PropType<{
        visibleData: import("vue").Ref<any[]>;
        translateY: import("vue").Ref<number>;
        scrollHeight: import("vue").Ref<number>;
        isVirtualScroll: import("vue").ComputedRef<boolean>;
        handleScroll: () => void;
        handleRowMounted: (rowData: any) => void;
        scrollToElement: (p: import("../hooks/useVirtualScrollNew").ScrollToElementParams) => void;
    }>;
}, {
    trRef: any;
    tableColFixedClasses: {
        left: string;
        right: string;
        lastLeft: string;
        firstRight: string;
        leftShadow: string;
        rightShadow: string;
    };
    tdEllipsisClass: string;
    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;
    };
    tdAlignClasses: {
        left: string;
        right: string;
        center: string;
    };
    tableDraggableClasses: {
        rowDraggable: string;
        rowHandlerDraggable: string;
        colDraggable: string;
        handle: string;
        ghost: string;
        chosen: string;
        dragging: string;
        dragSortTh: string;
    };
    trStyles: import("vue").ComputedRef<{
        style: import("..").Styles;
        classes: import("..").ClassName;
    }>;
    classes: import("vue").ComputedRef<import("..").ClassName[]>;
    trAttributes: import("vue").ComputedRef<import("..").HTMLElementAttributes>;
    tRowHeight: import("vue").ComputedRef<number>;
    hasLazyLoadHolder: import("vue").ComputedRef<boolean>;
    getTrListeners: (row: TableRowData, rowIndex: number) => {
        [eventName: string]: (e: MouseEvent) => void;
    };
}, unknown, {}, {
    renderEllipsisCell(cellParams: BaseTableCellParams<TableRowData>, params: RenderEllipsisCellParams): JSX.Element;
    renderTd(params: BaseTableCellParams<TableRowData>, extra: RenderTdExtra): JSX.Element;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "row-mounted"[], "row-mounted", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    tableElm: {};
    tableContentElm: {};
    columns: {
        type: PropType<import("./type").BaseTableCol<TableRowData>[]>;
        default: () => import("./type").BaseTableCol<TableRowData>[];
    };
    scroll: {
        type: PropType<import("..").InfinityScroll>;
    };
    pagination: {
        type: PropType<import("..").TdPaginationProps>;
    };
    attach: {
        type: PropType<AttachNode>;
    };
    onCellClick: PropType<(context: import("./type").BaseTableCellEventContext<TableRowData>) => void>;
    cellEmptyContent: {
        type: PropType<string | ((h: typeof h, props: BaseTableCellParams<TableRowData>) => import("..").SlotReturnValue)>;
    };
    fixedRows: {
        type: PropType<number[]>;
    };
    footData: {
        type: PropType<TableRowData[]>;
        default: () => TableRowData[];
    };
    rowAttributes: {
        type: PropType<import("./type").TableRowAttributes<TableRowData>>;
    };
    rowClassName: {
        type: PropType<import("..").ClassName | ((params: import("./type").RowClassNameParams<TableRowData>) => import("..").ClassName)>;
    };
    rowKey: {
        type: StringConstructor;
        default: string;
        required: boolean;
    };
    rowspanAndColspan: {
        type: PropType<import("./type").TableRowspanAndColspanFunc<TableRowData>>;
    };
    onRowClick: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowDblclick: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMousedown: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseenter: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseleave: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseover: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseup: PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    row: PropType<TableRowData>;
    rowIndex: NumberConstructor;
    dataLength: NumberConstructor;
    ellipsisOverlayClassName: StringConstructor;
    classPrefix: StringConstructor;
    rowAndColFixedPosition: PropType<RowAndColFixedPosition>;
    skipSpansMap: PropType<Map<string, SkipSpansValue>>;
    virtualConfig: PropType<{
        visibleData: import("vue").Ref<any[]>;
        translateY: import("vue").Ref<number>;
        scrollHeight: import("vue").Ref<number>;
        isVirtualScroll: import("vue").ComputedRef<boolean>;
        handleScroll: () => void;
        handleRowMounted: (rowData: any) => void;
        scrollToElement: (p: import("../hooks/useVirtualScrollNew").ScrollToElementParams) => void;
    }>;
}>> & {
    "onRow-mounted"?: (...args: any[]) => any;
}, {
    columns: import("./type").BaseTableCol<TableRowData>[];
    footData: TableRowData[];
    rowKey: string;
}>;
export default _default;
