import { PropType, SetupContext } from '@vue/composition-api';
import { CreateElement } from 'vue';
import { RowAndColFixedPosition } from './interface';
import { BaseTableCellParams, TableRowData, RowspanColspan, TdPrimaryTableProps, TdBaseTableProps } from './type';
import { 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", "onCellClick", "onRowClick", "onRowDblclick", "onRowMouseover", "onRowMousedown", "onRowMouseenter", "onRowMouseleave", "onRowMouseup"];
export declare type TrPropsKeys = typeof TABLE_PROPS[number];
export interface TrProps extends TrCommonProps {
    row: TableRowData;
    rowIndex: number;
    dataLength: number;
    rowAndColFixedPosition?: RowAndColFixedPosition;
    skipSpansMap?: Map<string, SkipSpansValue>;
    tableElm?: HTMLDivElement;
    scrollType?: string;
    isVirtual?: boolean;
    rowHeight?: number;
    trs?: Map<number, object>;
    bufferSize?: number;
    tableContentElm?: HTMLDivElement;
    cellEmptyContent: TdBaseTableProps['cellEmptyContent'];
}
export declare const ROW_LISTENERS: string[];
export declare function renderCell(params: BaseTableCellParams<TableRowData>, slots: SetupContext['slots'], extra?: {
    cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];
}): any;
declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    trRef: any;
    tableColFixedClasses: {
        left: string;
        right: string;
        lastLeft: string;
        firstRight: string;
        leftShadow: string;
        rightShadow: string;
    };
    tableDraggableClasses: {
        rowDraggable: string;
        rowHandlerDraggable: string;
        colDraggable: string;
        handle: string;
        ghost: string;
        chosen: string;
        dragging: string;
    };
    tSlots: Readonly<{
        [name: string]: (...args: any[]) => import("vue").VNode[];
    }>;
    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;
    };
    trStyles: import("@vue/composition-api").ComputedRef<{
        style: import("../common").Styles;
        classes: import("../common").ClassName;
    }>;
    classes: import("@vue/composition-api").ComputedRef<import("../common").ClassName[]>;
    trAttributes: import("@vue/composition-api").ComputedRef<import("../common").HTMLElementAttributes>;
    tRowHeight: import("@vue/composition-api").ComputedRef<number>;
    hasLazyLoadHolder: import("@vue/composition-api").ComputedRef<boolean>;
    getTrListeners: (row: TableRowData, rowIndex: number) => {
        [eventName: string]: (e: MouseEvent) => void;
    };
}> & import("@vue/composition-api").Data, {
    renderEllipsisCell(h: CreateElement, cellParams: BaseTableCellParams<TableRowData>, params: RenderEllipsisCellParams): JSX.Element;
    renderTd(h: CreateElement, params: BaseTableCellParams<TableRowData>, extra: RenderTdExtra): JSX.Element;
}, {}, {
    scrollType: StringConstructor;
    rowHeight: NumberConstructor;
    trs: PropType<Map<number, object>>;
    bufferSize: NumberConstructor;
    isVirtual: BooleanConstructor;
    tableElm: {};
    tableContentElm: {};
    columns: {
        type: import("vue").PropType<import("./type").BaseTableCol<TableRowData>[]>;
        default: () => import("./type").BaseTableCol<TableRowData>[];
    };
    scroll: {
        type: import("vue").PropType<import("./type").TableScroll>;
    };
    onCellClick: import("vue").PropType<(context: import("./type").BaseTableCellEventContext<TableRowData>) => void>;
    cellEmptyContent: {
        type: import("vue").PropType<string | ((h: CreateElement, props: BaseTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    fixedRows: {
        type: import("vue").PropType<number[]>;
    };
    footData: {
        type: import("vue").PropType<TableRowData[]>;
        default: () => TableRowData[];
    };
    rowAttributes: {
        type: import("vue").PropType<import("./type").TableRowAttributes<TableRowData>>;
    };
    rowClassName: {
        type: import("vue").PropType<import("../common").ClassName | ((params: import("./type").RowClassNameParams<TableRowData>) => import("../common").ClassName)>;
    };
    rowKey: {
        type: StringConstructor;
        default: string;
        required: boolean;
    };
    rowspanAndColspan: {
        type: import("vue").PropType<import("./type").TableRowspanAndColspanFunc<TableRowData>>;
    };
    onRowClick: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowDblclick: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMousedown: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseenter: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseleave: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseover: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseup: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    row: PropType<TableRowData>;
    rowIndex: NumberConstructor;
    dataLength: NumberConstructor;
    rowAndColFixedPosition: PropType<RowAndColFixedPosition>;
    skipSpansMap: PropType<Map<string, SkipSpansValue>>;
}, import("@vue/composition-api").ExtractPropTypes<{
    scrollType: StringConstructor;
    rowHeight: NumberConstructor;
    trs: PropType<Map<number, object>>;
    bufferSize: NumberConstructor;
    isVirtual: BooleanConstructor;
    tableElm: {};
    tableContentElm: {};
    columns: {
        type: import("vue").PropType<import("./type").BaseTableCol<TableRowData>[]>;
        default: () => import("./type").BaseTableCol<TableRowData>[];
    };
    scroll: {
        type: import("vue").PropType<import("./type").TableScroll>;
    };
    onCellClick: import("vue").PropType<(context: import("./type").BaseTableCellEventContext<TableRowData>) => void>;
    cellEmptyContent: {
        type: import("vue").PropType<string | ((h: CreateElement, props: BaseTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    fixedRows: {
        type: import("vue").PropType<number[]>;
    };
    footData: {
        type: import("vue").PropType<TableRowData[]>;
        default: () => TableRowData[];
    };
    rowAttributes: {
        type: import("vue").PropType<import("./type").TableRowAttributes<TableRowData>>;
    };
    rowClassName: {
        type: import("vue").PropType<import("../common").ClassName | ((params: import("./type").RowClassNameParams<TableRowData>) => import("../common").ClassName)>;
    };
    rowKey: {
        type: StringConstructor;
        default: string;
        required: boolean;
    };
    rowspanAndColspan: {
        type: import("vue").PropType<import("./type").TableRowspanAndColspanFunc<TableRowData>>;
    };
    onRowClick: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowDblclick: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMousedown: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseenter: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseleave: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseover: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    onRowMouseup: import("vue").PropType<(context: import("./type").RowEventContext<TableRowData>) => void>;
    row: PropType<TableRowData>;
    rowIndex: NumberConstructor;
    dataLength: NumberConstructor;
    rowAndColFixedPosition: PropType<RowAndColFixedPosition>;
    skipSpansMap: PropType<Map<string, SkipSpansValue>>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    columns: import("./type").BaseTableCol<TableRowData>[];
    isVirtual: boolean;
    footData: TableRowData[];
    rowKey: string;
} & {
    scroll?: import("./type").TableScroll;
    bufferSize?: number;
    trs?: Map<number, object>;
    rowIndex?: number;
    scrollType?: string;
    rowHeight?: number;
    onCellClick?: (context: import("./type").BaseTableCellEventContext<TableRowData>) => void;
    row?: unknown;
    cellEmptyContent?: string | ((h: CreateElement, props: BaseTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue);
    fixedRows?: number[];
    rowAttributes?: import("./type").TableRowAttributes<TableRowData>;
    rowClassName?: unknown;
    rowspanAndColspan?: import("./type").TableRowspanAndColspanFunc<TableRowData>;
    onRowClick?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowDblclick?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMousedown?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMouseenter?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMouseleave?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMouseover?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMouseup?: (context: import("./type").RowEventContext<TableRowData>) => void;
    skipSpansMap?: Map<string, SkipSpansValue>;
    dataLength?: number;
    tableElm?: unknown;
    tableContentElm?: unknown;
    rowAndColFixedPosition?: RowAndColFixedPosition;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    trRef: any;
    tableColFixedClasses: {
        left: string;
        right: string;
        lastLeft: string;
        firstRight: string;
        leftShadow: string;
        rightShadow: string;
    };
    tableDraggableClasses: {
        rowDraggable: string;
        rowHandlerDraggable: string;
        colDraggable: string;
        handle: string;
        ghost: string;
        chosen: string;
        dragging: string;
    };
    tSlots: Readonly<{
        [name: string]: (...args: any[]) => import("vue").VNode[];
    }>;
    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;
    };
    trStyles: import("@vue/composition-api").ComputedRef<{
        style: import("../common").Styles;
        classes: import("../common").ClassName;
    }>;
    classes: import("@vue/composition-api").ComputedRef<import("../common").ClassName[]>;
    trAttributes: import("@vue/composition-api").ComputedRef<import("../common").HTMLElementAttributes>;
    tRowHeight: import("@vue/composition-api").ComputedRef<number>;
    hasLazyLoadHolder: import("@vue/composition-api").ComputedRef<boolean>;
    getTrListeners: (row: TableRowData, rowIndex: number) => {
        [eventName: string]: (e: MouseEvent) => void;
    };
}>, import("@vue/composition-api").Data, {}, {
    renderEllipsisCell(h: CreateElement, cellParams: BaseTableCellParams<TableRowData>, params: RenderEllipsisCellParams): JSX.Element;
    renderTd(h: CreateElement, params: BaseTableCellParams<TableRowData>, extra: RenderTdExtra): JSX.Element;
}, {}, {}, {}, {
    columns: import("./type").BaseTableCol<TableRowData>[];
    isVirtual: boolean;
    footData: TableRowData[];
    rowKey: string;
} & {
    scroll?: import("./type").TableScroll;
    bufferSize?: number;
    trs?: Map<number, object>;
    rowIndex?: number;
    scrollType?: string;
    rowHeight?: number;
    onCellClick?: (context: import("./type").BaseTableCellEventContext<TableRowData>) => void;
    row?: unknown;
    cellEmptyContent?: string | ((h: CreateElement, props: BaseTableCellParams<TableRowData>) => import("vue/types/vnode").ScopedSlotReturnValue);
    fixedRows?: number[];
    rowAttributes?: import("./type").TableRowAttributes<TableRowData>;
    rowClassName?: unknown;
    rowspanAndColspan?: import("./type").TableRowspanAndColspanFunc<TableRowData>;
    onRowClick?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowDblclick?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMousedown?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMouseenter?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMouseleave?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMouseover?: (context: import("./type").RowEventContext<TableRowData>) => void;
    onRowMouseup?: (context: import("./type").RowEventContext<TableRowData>) => void;
    skipSpansMap?: Map<string, SkipSpansValue>;
    dataLength?: number;
    tableElm?: unknown;
    tableContentElm?: unknown;
    rowAndColFixedPosition?: RowAndColFixedPosition;
}, {
    columns: import("./type").BaseTableCol<TableRowData>[];
    isVirtual: boolean;
    footData: TableRowData[];
    rowKey: string;
}, true>);
export default _default;
