import type { VueTypeValidableDef, VueTypeDef } from 'vue-types';
import type { TableRowSelection } from 'ant-design-vue/es/table/interface';
import type { FetchSetting, TableSetting, SorterResult, TableCustomRecord, SizeType } from '../types/table';
import { ColumnPropsEx, VueNode } from '../types/column';
import type { FormProps } from '../../form';
import { PaginationProps } from '../../pagination';
import type { Recordable } from '../../typings/global';
import type { TitleActionItem } from '../types/tableAction';
import type { TopTabPane } from '../types/tableTabs';
export declare const useProps: {
    clickToRowSelect: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    isTreeTable: BooleanConstructor;
    tableSetting: VueTypeValidableDef<TableSetting> & {
        default: () => TableSetting;
    };
    showTableSetting: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    inset: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    sortFn: VueTypeValidableDef<(sortInfo: SorterResult) => any> & {
        default: (sortInfo: SorterResult) => any;
    };
    filterFn: VueTypeValidableDef<(data: Recordable<string[]>) => any> & {
        default: (data: Recordable<string[]>) => any;
    };
    autoCreateKey: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    striped: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    indentSize: VueTypeValidableDef<number> & {
        default: number;
    };
    api: VueTypeValidableDef<(...arg: any[]) => Promise<any>>;
    beforeFetch: VueTypeValidableDef<(...arg: any[]) => any>;
    afterFetch: VueTypeValidableDef<(...arg: any[]) => any>;
    handleSearchInfoFn: VueTypeValidableDef<(...arg: any[]) => any>;
    fetchSetting: VueTypeValidableDef<Partial<FetchSetting>> & {
        default: () => Partial<FetchSetting>;
    };
    immediate: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    emptyDataIsShowTable: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    searchInfo: VueTypeValidableDef<Recordable<any>>;
    defSort: VueTypeValidableDef<Recordable<any>>;
    useSearchForm: VueTypeValidableDef<boolean>;
    formConfig: VueTypeValidableDef<Partial<FormProps>>;
    columns: VueTypeValidableDef<ColumnPropsEx<any>[]> & {
        default: () => ColumnPropsEx<any>[];
    };
    showIndexColumn: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    indexColumnProps: VueTypeValidableDef<ColumnPropsEx<any>>;
    actionColumn: VueTypeValidableDef<ColumnPropsEx<any>>;
    ellipsis: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    canResize: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    isCanResizeParent: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    clearSelectOnPageChange: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    resizeHeightOffset: VueTypeValidableDef<number> & {
        default: number;
    };
    rowSelection: VueTypeDef<TableRowSelection<any> | null> & {
        default: (() => TableRowSelection<any>) | null;
    };
    title: VueTypeDef<VueNode | ((data: Recordable) => string)>;
    titleHelpMessage: VueTypeDef<string | string[]>;
    maxHeight: VueTypeValidableDef<number>;
    dataSource: VueTypeValidableDef<Recordable<any>>;
    rowKey: VueTypeDef<string | ((record: Recordable) => string)>;
    bordered: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    pagination: VueTypeDef<boolean | PaginationProps>;
    loading: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    rowClassName: VueTypeValidableDef<(record: TableCustomRecord<any>, index: number) => string>;
    scroll: VueTypeValidableDef<{
        x?: string | number | true | undefined;
        y?: string | number | undefined;
        scrollToFirstRowOnChange?: boolean | undefined;
    }>;
    beforeEditSubmit: VueTypeValidableDef<(data: {
        record: Recordable;
        index: number;
        key: string | number;
        value: any;
    }) => Promise<any>>;
    size: VueTypeValidableDef<SizeType> & {
        default: SizeType;
    };
    cacheName: VueTypeValidableDef<string>;
    cacheEnable: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    titleActions: VueTypeValidableDef<TitleActionItem[]>;
    showSettingColumn: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    fixTitleEmpty: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    topTabs: VueTypeValidableDef<TopTabPane[]>;
    topTabsActivedKey: VueTypeDef<string | number> & {
        default: string | number;
    };
    topTabsFetchParamkey: VueTypeValidableDef<string>;
    sticky: VueTypeDef<boolean | {
        offsetHeader?: number | undefined;
        offsetScroll?: number | undefined;
        getContainer?: (() => HTMLElement) | undefined;
    }> & {
        default: boolean | (() => {
            offsetHeader?: number | undefined;
            offsetScroll?: number | undefined;
            getContainer?: (() => HTMLElement) | undefined;
        });
    };
    stickyTitle: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    showScrollBtns: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    resizeFlow: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    customPagination: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    customPaginationSizeChangerSuffix: VueTypeValidableDef<string> & {
        default: string;
    };
    settingColumnProps: VueTypeValidableDef<ColumnPropsEx<any>> & {
        default: () => ColumnPropsEx<any>;
    };
    draggableScroll: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    draggableScrollDelay: VueTypeValidableDef<number> & {
        default: number;
    };
    horizontalScrollUsingWheel: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    rowHeight: VueTypeValidableDef<number> & {
        default: number;
    };
    virtualList: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    virtualOffset: VueTypeValidableDef<number> & {
        default: number;
    };
    customMaxPageSize: VueTypeValidableDef<number> & {
        default: number;
    };
    enableResponseWhenAllFixed: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    enableResponseNumber: VueTypeValidableDef<number> & {
        default: number;
    };
    emptyText: VueTypeValidableDef<string>;
    t: VueTypeValidableDef<(key: string, ...args: any[]) => any>;
};
