import type { sortItems } from '@veno-ui/utils';
import type { Size } from '../../composables/size';
import type { DefineComponent, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType } from 'vue';
import type { DataIteratorSortFunction, PaginationProps } from '../../composables/data-iterator';
interface TableHeaderProps {
    $type?: 'selection';
    value: string;
    text?: string;
    align?: 'start' | 'center' | 'end';
    sortable?: boolean;
    fixed?: boolean | 'start' | 'end';
    width?: string | number;
    minWidth?: string | number;
    maxWidth?: string | number;
    [key: string]: any;
}
export declare const Table: DefineComponent<{
    beautifyScrollbar: {
        type: BooleanConstructor;
        default: boolean;
    };
    elevation: {
        type: (StringConstructor | NumberConstructor)[];
        validator(v: any): boolean;
    };
    shape: Omit<{
        type: PropType<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
        default: string;
    }, "default" | "type"> & {
        type: PropType<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">>;
        default: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
    };
    border: {
        type: PropType<NonNullable<string | number | boolean>>;
        default: NonNullable<string | number | boolean>;
    };
    density: {
        type: PropType<"medium" | "ultra-low" | "low" | "high" | "ultra-high" | undefined>;
        default: string;
        validator: (v: any) => boolean;
    };
    size: {
        type: PropType<Size | undefined>;
        default: string;
    };
    height: (StringConstructor | NumberConstructor)[];
    maxHeight: (StringConstructor | NumberConstructor)[];
    maxWidth: (StringConstructor | NumberConstructor)[];
    minHeight: (StringConstructor | NumberConstructor)[];
    minWidth: (StringConstructor | NumberConstructor)[];
    width: (StringConstructor | NumberConstructor)[];
    absolute: BooleanConstructor;
    bottom: (BooleanConstructor | StringConstructor | NumberConstructor)[];
    fixed: BooleanConstructor;
    left: (BooleanConstructor | StringConstructor | NumberConstructor)[];
    position: {
        type: PropType<"fixed" | "absolute" | "static" | "relative" | "sticky">;
        validator: (v: any) => boolean;
    };
    right: (BooleanConstructor | StringConstructor | NumberConstructor)[];
    top: (BooleanConstructor | StringConstructor | NumberConstructor)[];
    color: StringConstructor;
    textColor: StringConstructor;
    variant: {
        type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
        default: string;
        validator: (v: any) => boolean;
    };
    theme: StringConstructor;
    tag: {
        type: StringConstructor;
        default: string;
    };
    remote: BooleanConstructor;
    items: {
        type: PropType<Record<string, any>[]>;
        default: () => never[];
    };
    mustSort: BooleanConstructor;
    multiSort: BooleanConstructor;
    sortBy: {
        type: PropType<string | string[]>;
        default: () => never[];
    };
    sortDesc: {
        type: PropType<boolean | boolean[]>;
        default: () => never[];
    };
    customSort: {
        type: PropType<DataIteratorSortFunction>;
        default: typeof sortItems;
    };
    locale: {
        type: StringConstructor;
        default: string;
    };
    pagination: {
        type: PropType<Partial<{
            page: number;
            perPage: number;
            perPageOptions: number[];
            total: number;
            totalVisible: number;
            showQuickJumper: boolean;
            showPerPageSelect: boolean;
        }>>;
        defualt: () => {
            page: number;
            perPage: number;
            perPageOptions: number[];
            total: number;
            totalVisible: number;
            showQuickJumper: boolean;
            showPerPageSelect: boolean;
        };
    };
    /**
     * @zh 隐藏边框
     */
    hideBorder: BooleanConstructor;
    /**
     * @zh 隐藏表头
     */
    hideHeader: BooleanConstructor;
    /**
     * @zh 固定表头
     */
    fixedHeader: BooleanConstructor;
    /**
     * @zh 表头
     */
    headers: {
        type: PropType<TableHeaderProps[]>;
        default: () => never[];
    };
    /**
     * @zh 已选择的
     */
    selected: {
        type: PropType<Record<string, any>[]>;
        default: () => never[];
    };
    /**
     * @zh 排序的图标
     */
    sortIcon: {
        type: StringConstructor;
        default: string;
    };
    /**
     * @zh 排序激活时的颜色
     */
    sortActiveColor: {
        type: StringConstructor;
        default: string;
    };
    /**
     * @zh 加载中
     */
    loading: BooleanConstructor;
    /**
     * @zh 唯一键
     */
    itemKey: {
        type: StringConstructor;
        default: string;
    };
    /**
     * @zh 隐藏分页
     */
    hidePagination: BooleanConstructor;
}, {
    exportCSV(name: string): void;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    'update:pagination': (_: PaginationProps) => true;
    'update:sortBy': (_: string | string[]) => true;
    'update:sortDesc': (_: boolean | boolean[]) => true;
    'update:options': (_: Record<string, any>) => true;
    'update:selected': (_: Record<string, any>[]) => true;
}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    beautifyScrollbar: {
        type: BooleanConstructor;
        default: boolean;
    };
    elevation: {
        type: (StringConstructor | NumberConstructor)[];
        validator(v: any): boolean;
    };
    shape: Omit<{
        type: PropType<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
        default: string;
    }, "default" | "type"> & {
        type: PropType<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">>;
        default: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
    };
    border: {
        type: PropType<NonNullable<string | number | boolean>>;
        default: NonNullable<string | number | boolean>;
    };
    density: {
        type: PropType<"medium" | "ultra-low" | "low" | "high" | "ultra-high" | undefined>;
        default: string;
        validator: (v: any) => boolean;
    };
    size: {
        type: PropType<Size | undefined>;
        default: string;
    };
    height: (StringConstructor | NumberConstructor)[];
    maxHeight: (StringConstructor | NumberConstructor)[];
    maxWidth: (StringConstructor | NumberConstructor)[];
    minHeight: (StringConstructor | NumberConstructor)[];
    minWidth: (StringConstructor | NumberConstructor)[];
    width: (StringConstructor | NumberConstructor)[];
    absolute: BooleanConstructor;
    bottom: (BooleanConstructor | StringConstructor | NumberConstructor)[];
    fixed: BooleanConstructor;
    left: (BooleanConstructor | StringConstructor | NumberConstructor)[];
    position: {
        type: PropType<"fixed" | "absolute" | "static" | "relative" | "sticky">;
        validator: (v: any) => boolean;
    };
    right: (BooleanConstructor | StringConstructor | NumberConstructor)[];
    top: (BooleanConstructor | StringConstructor | NumberConstructor)[];
    color: StringConstructor;
    textColor: StringConstructor;
    variant: {
        type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
        default: string;
        validator: (v: any) => boolean;
    };
    theme: StringConstructor;
    tag: {
        type: StringConstructor;
        default: string;
    };
    remote: BooleanConstructor;
    items: {
        type: PropType<Record<string, any>[]>;
        default: () => never[];
    };
    mustSort: BooleanConstructor;
    multiSort: BooleanConstructor;
    sortBy: {
        type: PropType<string | string[]>;
        default: () => never[];
    };
    sortDesc: {
        type: PropType<boolean | boolean[]>;
        default: () => never[];
    };
    customSort: {
        type: PropType<DataIteratorSortFunction>;
        default: typeof sortItems;
    };
    locale: {
        type: StringConstructor;
        default: string;
    };
    pagination: {
        type: PropType<Partial<{
            page: number;
            perPage: number;
            perPageOptions: number[];
            total: number;
            totalVisible: number;
            showQuickJumper: boolean;
            showPerPageSelect: boolean;
        }>>;
        defualt: () => {
            page: number;
            perPage: number;
            perPageOptions: number[];
            total: number;
            totalVisible: number;
            showQuickJumper: boolean;
            showPerPageSelect: boolean;
        };
    };
    /**
     * @zh 隐藏边框
     */
    hideBorder: BooleanConstructor;
    /**
     * @zh 隐藏表头
     */
    hideHeader: BooleanConstructor;
    /**
     * @zh 固定表头
     */
    fixedHeader: BooleanConstructor;
    /**
     * @zh 表头
     */
    headers: {
        type: PropType<TableHeaderProps[]>;
        default: () => never[];
    };
    /**
     * @zh 已选择的
     */
    selected: {
        type: PropType<Record<string, any>[]>;
        default: () => never[];
    };
    /**
     * @zh 排序的图标
     */
    sortIcon: {
        type: StringConstructor;
        default: string;
    };
    /**
     * @zh 排序激活时的颜色
     */
    sortActiveColor: {
        type: StringConstructor;
        default: string;
    };
    /**
     * @zh 加载中
     */
    loading: BooleanConstructor;
    /**
     * @zh 唯一键
     */
    itemKey: {
        type: StringConstructor;
        default: string;
    };
    /**
     * @zh 隐藏分页
     */
    hidePagination: BooleanConstructor;
}>> & {
    "onUpdate:selected"?: ((_: Record<string, any>[]) => any) | undefined;
    "onUpdate:pagination"?: ((_: Partial<{
        page: number;
        perPage: number;
        perPageOptions: number[];
        total: number;
        totalVisible: number;
        showQuickJumper: boolean;
        showPerPageSelect: boolean;
    }>) => any) | undefined;
    "onUpdate:sortBy"?: ((_: string | string[]) => any) | undefined;
    "onUpdate:sortDesc"?: ((_: boolean | boolean[]) => any) | undefined;
    "onUpdate:options"?: ((_: Record<string, any>) => any) | undefined;
}, {
    loading: boolean;
    fixed: boolean;
    tag: string;
    variant: "text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined";
    absolute: boolean;
    size: Size | undefined;
    density: "medium" | "ultra-low" | "low" | "high" | "ultra-high" | undefined;
    border: NonNullable<string | number | boolean>;
    shape: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
    items: Record<string, any>[];
    beautifyScrollbar: boolean;
    itemKey: string;
    selected: Record<string, any>[];
    remote: boolean;
    mustSort: boolean;
    multiSort: boolean;
    sortBy: string | string[];
    sortDesc: boolean | boolean[];
    customSort: DataIteratorSortFunction;
    locale: string;
    hideBorder: boolean;
    hideHeader: boolean;
    fixedHeader: boolean;
    headers: TableHeaderProps[];
    sortIcon: string;
    sortActiveColor: string;
    hidePagination: boolean;
}>;
export {};
//# sourceMappingURL=table.d.ts.map