import { ExtractPropTypes, PropType } from 'vue';
import { ClassType, ConfigurableProps, StyleType } from '@vexip-ui/config';
import { Accessor, ColumnCellSpanFn, ColumnRenderFn, ColumnSummaryRenderFn, Data, DropType, ExpandRenderFn, FilterRenderFn, HeadRenderFn, SummaryCellSpanFn, SummaryRenderFn, TableCellPayload, TableCellPropFn, TableCellSpanFn, TableColumnRawOptions, TableFilterProfile, TableFootPayload, TableFootPropFn, TableHeadPayload, TableHeadPropFn, TableKeyConfig, TableRowPayload, TableRowPropFn, TableSlots, TableSorterOptions, TableSorterProfile, TableSummaryOptions } from './symbol';
export declare const tableProps: {
    inherit: PropType<boolean>;
    locale: PropType<Partial<{
        empty: string;
        filterConfirm: string;
        filterReset: string;
        filterAll: string;
    }>>;
    columns: PropType<TableColumnRawOptions[]>;
    summaries: PropType<TableSummaryOptions<any, any>[]>;
    data: PropType<Data[]>;
    width: PropType<string | number>;
    height: PropType<number>;
    minHeight: PropType<number>;
    rowClass: PropType<string | Record<string, any> | (string | Record<string, any>)[] | TableRowPropFn<ClassType>>;
    rowStyle: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[] | TableRowPropFn<StyleType>>;
    rowAttrs: PropType<Record<string, any> | TableRowPropFn<Record<string, any>>>;
    stripe: PropType<boolean>;
    border: PropType<boolean>;
    highlight: PropType<boolean>;
    useXBar: PropType<boolean>;
    useYBar: PropType<boolean>;
    barFade: PropType<number>;
    rowDraggable: PropType<boolean>;
    rowHeight: PropType<number>;
    rowMinHeight: PropType<number>;
    virtual: PropType<boolean>;
    bufferCount: PropType<number>;
    scrollClass: PropType<{
        horizontal?: ClassType;
        major?: ClassType;
        left?: ClassType;
        right?: ClassType;
    }>;
    expandRenderer: PropType<ExpandRenderFn>;
    currentPage: PropType<number>;
    pageSize: PropType<number>;
    transparent: PropType<boolean>;
    tooltipTheme: PropType<"light" | "dark">;
    tooltipWidth: PropType<string | number>;
    singleSorter: PropType<boolean>;
    singleFilter: PropType<boolean>;
    cellClass: PropType<string | Record<string, any> | (string | Record<string, any>)[] | TableCellPropFn<any, ClassType>>;
    cellStyle: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[] | TableCellPropFn<any, StyleType>>;
    cellAttrs: PropType<Record<string, any> | TableCellPropFn<any, Record<string, any>>>;
    headClass: PropType<string | Record<string, any> | (string | Record<string, any>)[] | TableHeadPropFn<ClassType>>;
    headStyle: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[] | TableHeadPropFn<StyleType>>;
    headAttrs: PropType<Record<string, any> | TableHeadPropFn<Record<string, any>>>;
    footClass: PropType<string | Record<string, any> | (string | Record<string, any>)[] | TableFootPropFn<ClassType>>;
    footStyle: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[] | TableFootPropFn<StyleType>>;
    footAttrs: PropType<Record<string, any> | TableFootPropFn<Record<string, any>>>;
    customSorter: PropType<boolean>;
    customFilter: PropType<boolean>;
    keyConfig: PropType<TableKeyConfig>;
    disabledTree: PropType<boolean>;
    rowIndent: PropType<string | number>;
    noCascaded: PropType<boolean>;
    colResizable: PropType<boolean | "responsive" | "lazy">;
    cellSpan: PropType<TableCellSpanFn>;
    sidePadding: PropType<number | number[]>;
    icons: PropType<Partial<Record<import('./symbol').TableIconName, Record<string, any> | (() => any)>>>;
    borderWidth: PropType<number>;
    dataFilter: PropType<(data: Data) => boolean>;
    noTransition: PropType<boolean>;
    ellipsis: PropType<boolean>;
    slots: PropType<TableSlots>;
    onScroll: PropType<((payload: {
        type: "horizontal" | "vertical";
        client: number;
        percent: number;
    }) => void) | ((payload: {
        type: "horizontal" | "vertical";
        client: number;
        percent: number;
    }) => void)[]>;
    onRowEnter: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>;
    onRowLeave: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>;
    onRowClick: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>;
    onRowDblclick: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>;
    onRowContextmenu: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>;
    onRowCheck: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>;
    onRowCheckAll: PropType<((checked: boolean, partial: boolean) => void) | ((checked: boolean, partial: boolean) => void)[]>;
    onRowExpand: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>;
    onRowTreeExpand: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>;
    onRowDragStart: PropType<((row: Data, event: DragEvent) => void) | ((row: Data, event: DragEvent) => void)[]>;
    onRowDragOver: PropType<((row: Data, event: DragEvent) => void) | ((row: Data, event: DragEvent) => void)[]>;
    onRowDrop: PropType<((row: Data, type: DropType, event: DragEvent) => void) | ((row: Data, type: DropType, event: DragEvent) => void)[]>;
    onRowDragEnd: PropType<((row: Data, allRows: Data[], event: DragEvent) => void) | ((row: Data, allRows: Data[], event: DragEvent) => void)[]>;
    onRowFilter: PropType<((profiles: TableFilterProfile[], filteredRow: Data[]) => void) | ((profiles: TableFilterProfile[], filteredRow: Data[]) => void)[]>;
    onRowSort: PropType<((profiles: TableSorterProfile[], sortedRow: Data[]) => void) | ((profiles: TableSorterProfile[], sortedRow: Data[]) => void)[]>;
    onCellEnter: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>;
    onCellLeave: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>;
    onCellClick: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>;
    onCellDblclick: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>;
    onCellContextmenu: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>;
    onHeadEnter: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>;
    onHeadLeave: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>;
    onHeadClick: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>;
    onHeadDblclick: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>;
    onHeadContextmenu: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>;
    onColResizeStart: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>;
    onColResizeMove: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>;
    onColResizeEnd: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>;
    onFootEnter: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>;
    onFootLeave: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>;
    onFootClick: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>;
    onFootDblclick: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>;
    onFootContextmenu: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>;
};
export type TableProps = ExtractPropTypes<typeof tableProps>;
export type TableCProps = ConfigurableProps<TableProps, 'columns' | 'data' | 'currentPage' | 'summaries'>;
export declare const tableColumnProps: {
    inherit: PropType<boolean>;
    idKey: PropType<string | number>;
    name: PropType<string>;
    accessor: PropType<Accessor>;
    fixed: PropType<boolean | "right" | "left">;
    class: PropType<string | Record<string, any> | (string | Record<string, any>)[]>;
    style: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[]>;
    attrs: PropType<any>;
    type: PropType<"drag" | "order" | "expand" | "selection">;
    width: PropType<number | `${number}%`>;
    minWidth: PropType<number>;
    maxWidth: PropType<number>;
    filter: PropType<{
        able?: boolean;
        custom?: false;
        options?: (string | {
            value: any;
            label?: string;
            active?: boolean;
        })[] | undefined;
        multiple?: false;
        active?: any;
        method?: ((active: any, data: any) => boolean) | null | undefined;
        meta?: any;
    } | {
        able?: boolean;
        custom?: false;
        options?: (string | {
            value: any;
            label?: string;
            active?: boolean;
        })[] | undefined;
        multiple: true;
        active?: any[] | null | undefined;
        method?: ((active: any[], data: any) => boolean) | null | undefined;
        meta?: any;
    } | {
        able?: boolean;
        custom: true;
        options?: never;
        multiple?: false;
        active?: any;
        method?: ((active: any, data: any) => boolean) | null | undefined;
        meta?: any;
    }>;
    sorter: PropType<boolean | TableSorterOptions<any>>;
    renderer: PropType<ColumnRenderFn>;
    headRenderer: PropType<HeadRenderFn>;
    filterRenderer: PropType<FilterRenderFn>;
    order: PropType<number>;
    ellipsis: PropType<boolean>;
    checkboxSize: PropType<"default" | "small" | "large">;
    selectionSize: PropType<"default" | "small" | "large">;
    disableRow: PropType<(data: Data) => boolean>;
    truthIndex: PropType<boolean>;
    orderLabel: PropType<(index: number) => string | number>;
    meta: PropType<any>;
    textAlign: PropType<"center" | "right" | "left">;
    headSpan: PropType<number>;
    cellSpan: PropType<ColumnCellSpanFn>;
    noSummary: PropType<boolean>;
    summaryRenderer: PropType<ColumnSummaryRenderFn>;
    indented: PropType<boolean>;
    formatter: PropType<(value: any) => unknown>;
    singleSelect: PropType<boolean>;
};
export type TableColumnProps = ExtractPropTypes<typeof tableColumnProps>;
export type TableColumnCProps = ConfigurableProps<TableColumnProps, 'idKey' | 'name' | 'accessor' | 'fixed' | 'type' | 'renderer' | 'headRenderer' | 'order' | 'headSpan' | 'summaryRenderer'>;
export declare const tableColumnGroupProps: {
    inherit: PropType<boolean>;
    name: PropType<string>;
    fixed: PropType<boolean | "right" | "left">;
    order: PropType<number>;
    ellipsis: PropType<boolean>;
    textAlign: PropType<"center" | "right" | "left">;
    renderer: PropType<() => any>;
    children: PropType<TableColumnRawOptions[]>;
};
export type TableColumnGroupProps = ExtractPropTypes<typeof tableColumnGroupProps>;
export type TableColumnGroupCProps = ConfigurableProps<TableColumnProps, 'name' | 'fixed' | 'order'>;
export declare const tableSummaryProps: {
    inherit: PropType<boolean>;
    idKey: PropType<string | number>;
    name: PropType<string>;
    class: PropType<string | Record<string, any> | (string | Record<string, any>)[]>;
    style: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[]>;
    attrs: PropType<any>;
    cellSpan: PropType<SummaryCellSpanFn>;
    order: PropType<number>;
    above: PropType<boolean>;
    meta: PropType<any>;
    renderer: PropType<SummaryRenderFn>;
};
export type TableSummaryProps = ExtractPropTypes<typeof tableSummaryProps>;
export type TableSummaryCProps = ConfigurableProps<TableSummaryProps, 'idKey' | 'name' | 'renderer' | 'colSpan' | 'order' | 'above'>;
