import { PropType, SetupContext, Ref } from '@vue/composition-api';
import { CreateElement } from 'vue';
import { RowAndColFixedPosition } from './hooks/useFixed';
import { BaseTableCellParams, TableRowData, RowspanColspan, TdPrimaryTableProps, PrimaryTableCellParams } from './type';
export interface RenderTdExtra {
    rowAndColFixedPosition: RowAndColFixedPosition;
    columnLength: number;
    dataLength: number;
    cellSpans: RowspanColspan;
}
export interface RenderEllipsisCellParams {
    cellNode: any;
}
export declare type TrPropsKeys = 'rowKey' | 'rowClassName' | 'columns' | 'fixedRows' | 'footData' | 'rowAttributes' | 'rowspanAndColspan' | 'onCellClick' | 'onRowClick' | 'onRowDblclick' | 'onRowMouseover' | 'onRowMousedown' | 'onRowMouseenter' | 'onRowMouseleave' | 'onRowMouseup';
export declare type TrCommonProps = Pick<TdPrimaryTableProps, TrPropsKeys>;
export declare const TABLE_PROPS: TrPropsKeys[];
export interface TrProps extends TrCommonProps {
    row: TableRowData;
    rowIndex: number;
    dataLength: number;
    rowAndColFixedPosition: RowAndColFixedPosition;
    skipSpansMap: Map<any, boolean>;
    onTrRowspanOrColspan?: (params: PrimaryTableCellParams<TableRowData>, cellSpans: RowspanColspan) => void;
    scrollType: string;
    isVirtual: boolean;
    rowHeight: number;
    trs: Map<number, object>;
    bufferSize: number;
    tableElm: HTMLDivElement;
}
export declare const ROW_LISTENERS: string[];
export declare function renderCell(params: BaseTableCellParams<TableRowData>, slots: SetupContext['slots']): any;
declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    tableColFixedClasses: {
        left: string;
        right: string;
        lastLeft: string;
        firstRight: string;
        leftShadow: string;
        rightShadow: string;
    };
    tSlots: Readonly<{
        [name: string]: (...args: any[]) => import("vue").VNode[];
    }>;
    tdEllipsisClass: string;
    tableBaseClass: {
        table: string;
        body: string;
        content: string;
        topContent: string;
        tdLastRow: string;
        thCellInner: string;
        bordered: string;
        striped: string;
        hover: string;
        empty: string;
        emptyRow: string;
        headerFixed: string;
        columnFixed: string;
        widthOverflow: string;
        multipleHeader: string;
        affixedHeader: string;
        affixedHeaderElm: string;
        scrollbarDivider: string;
        fullHeight: 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>;
    getTrListeners: (row: TableRowData, rowIndex: number) => {
        [eventName: string]: (e: MouseEvent) => void;
    };
    tr: any;
    isInit: Ref<boolean>;
}> & 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: {};
    columns: {
        type: import("vue").PropType<import("./type").BaseTableCol<TableRowData>[]>;
        default: () => import("./type").BaseTableCol<TableRowData>[];
    };
    onCellClick: import("vue").PropType<(context: import("./type").BaseTableCellEventContext<TableRowData>) => void>;
    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<any, boolean>>;
    onTrRowspanOrColspan: PropType<(params: PrimaryTableCellParams<TableRowData>, cellSpans: RowspanColspan) => void>;
}, {
    columns: import("./type").BaseTableCol<TableRowData>[];
    footData: TableRowData[];
    rowKey: string;
    isVirtual: boolean;
} & {
    onCellClick?: (context: import("./type").BaseTableCellEventContext<TableRowData>) => void;
    row?: unknown;
    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;
    bufferSize?: number;
    rowIndex?: number;
    skipSpansMap?: Map<any, boolean>;
    onTrRowspanOrColspan?: (params: PrimaryTableCellParams<TableRowData>, cellSpans: RowspanColspan) => void;
    trs?: Map<number, object>;
    dataLength?: number;
    scrollType?: string;
    rowHeight?: number;
    tableElm?: unknown;
    rowAndColFixedPosition?: RowAndColFixedPosition;
}> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    columns: import("./type").BaseTableCol<TableRowData>[];
    footData: TableRowData[];
    rowKey: string;
    isVirtual: boolean;
} & {
    onCellClick?: (context: import("./type").BaseTableCellEventContext<TableRowData>) => void;
    row?: unknown;
    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;
    bufferSize?: number;
    rowIndex?: number;
    skipSpansMap?: Map<any, boolean>;
    onTrRowspanOrColspan?: (params: PrimaryTableCellParams<TableRowData>, cellSpans: RowspanColspan) => void;
    trs?: Map<number, object>;
    dataLength?: number;
    scrollType?: string;
    rowHeight?: number;
    tableElm?: unknown;
    rowAndColFixedPosition?: RowAndColFixedPosition;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    tableColFixedClasses: {
        left: string;
        right: string;
        lastLeft: string;
        firstRight: string;
        leftShadow: string;
        rightShadow: string;
    };
    tSlots: Readonly<{
        [name: string]: (...args: any[]) => import("vue").VNode[];
    }>;
    tdEllipsisClass: string;
    tableBaseClass: {
        table: string;
        body: string;
        content: string;
        topContent: string;
        tdLastRow: string;
        thCellInner: string;
        bordered: string;
        striped: string;
        hover: string;
        empty: string;
        emptyRow: string;
        headerFixed: string;
        columnFixed: string;
        widthOverflow: string;
        multipleHeader: string;
        affixedHeader: string;
        affixedHeaderElm: string;
        scrollbarDivider: string;
        fullHeight: 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>;
    getTrListeners: (row: TableRowData, rowIndex: number) => {
        [eventName: string]: (e: MouseEvent) => void;
    };
    tr: any;
    isInit: Ref<boolean>;
}>, 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>[];
    footData: TableRowData[];
    rowKey: string;
    isVirtual: boolean;
} & {
    onCellClick?: (context: import("./type").BaseTableCellEventContext<TableRowData>) => void;
    row?: unknown;
    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;
    bufferSize?: number;
    rowIndex?: number;
    skipSpansMap?: Map<any, boolean>;
    onTrRowspanOrColspan?: (params: PrimaryTableCellParams<TableRowData>, cellSpans: RowspanColspan) => void;
    trs?: Map<number, object>;
    dataLength?: number;
    scrollType?: string;
    rowHeight?: number;
    tableElm?: unknown;
    rowAndColFixedPosition?: RowAndColFixedPosition;
}, {
    columns: import("./type").BaseTableCol<TableRowData>[];
    footData: TableRowData[];
    rowKey: string;
}, true>);
export default _default;
