import { type ExtractPublicPropTypes, type PropType } from 'vue';
import { type ThemeComponent } from '../../composables/useTheme';
import { type TableHeaderAlign } from './TableHeader.vue';
import type { SkeletonShape } from '../skeleton/Skeleton.vue';
declare const tableProps: {
    headers: {
        type: PropType<TableHeader[]>;
        default: () => never[];
    };
    items: {
        type: ArrayConstructor;
        default: () => never[];
    };
    sort: {
        type: PropType<string[]>;
        default: () => never[];
    };
    loading: BooleanConstructor;
    loadingSkeleton: BooleanConstructor;
    loadingLines: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    error: BooleanConstructor;
    dense: BooleanConstructor;
    fixed: BooleanConstructor;
    striped: BooleanConstructor;
    pointer: BooleanConstructor;
    scrollable: {
        type: BooleanConstructor;
        default: boolean;
    };
    stickyHeader: {
        type: BooleanConstructor;
        default: boolean;
    };
    expandable: BooleanConstructor;
    virtualList: BooleanConstructor;
    virtualListOffsetTop: NumberConstructor;
    virtualListOffsetBottom: NumberConstructor;
    virtualListItemHeight: {
        type: NumberConstructor;
        default: number;
    };
    virtualListOverscan: {
        type: NumberConstructor;
        default: number;
    };
    keyProp: StringConstructor;
    selectable: BooleanConstructor;
    singleSelect: BooleanConstructor;
    autoClearSelected: {
        type: BooleanConstructor;
        default: boolean;
    };
};
export type TableHeader = {
    sortable?: boolean;
    sort?: string[];
    align?: TableHeaderAlign;
    value?: string;
    text?: string;
    width?: string | number;
    truncate?: boolean;
    skeletonShape?: SkeletonShape;
    tooltip?: string;
};
export type TableProps = ExtractPublicPropTypes<typeof tableProps>;
type InternalClasses = 'wrapper' | 'table' | 'loadingWrapper';
export interface TableTheme extends ThemeComponent<TableProps, InternalClasses> {
}
declare const _default: <T>(__VLS_props: Partial<{
    error: boolean;
    sort: string[];
    items: T[];
    loading: boolean;
    fixed: boolean;
    virtualList: boolean;
    virtualListItemHeight: number;
    virtualListOverscan: number;
    headers: TableHeader[];
    loadingSkeleton: boolean;
    loadingLines: string | number;
    dense: boolean;
    striped: boolean;
    pointer: boolean;
    scrollable: boolean;
    stickyHeader: boolean;
    expandable: boolean;
    selectable: boolean;
    singleSelect: boolean;
    autoClearSelected: boolean;
}> & Omit<{
    readonly error: boolean;
    readonly sort: string[];
    readonly items: T[];
    readonly loading: boolean;
    readonly fixed: boolean;
    readonly virtualList: boolean;
    readonly virtualListItemHeight: number;
    readonly virtualListOverscan: number;
    readonly headers: TableHeader[];
    readonly loadingSkeleton: boolean;
    readonly loadingLines: string | number;
    readonly dense: boolean;
    readonly striped: boolean;
    readonly pointer: boolean;
    readonly scrollable: boolean;
    readonly stickyHeader: boolean;
    readonly expandable: boolean;
    readonly selectable: boolean;
    readonly singleSelect: boolean;
    readonly autoClearSelected: boolean;
    readonly virtualListOffsetTop?: number | undefined;
    readonly virtualListOffsetBottom?: number | undefined;
    readonly keyProp?: string | undefined;
    readonly "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
    readonly "onClick-row"?: ((...args: any[]) => any) | undefined;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
    items: {
        type: PropType<T[]>;
        default: () => never[];
    };
    headers: {
        type: PropType<TableHeader[]>;
        default: () => never[];
    };
    sort: {
        type: PropType<string[]>;
        default: () => never[];
    };
    loading: BooleanConstructor;
    loadingSkeleton: BooleanConstructor;
    loadingLines: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    error: BooleanConstructor;
    dense: BooleanConstructor;
    fixed: BooleanConstructor;
    striped: BooleanConstructor;
    pointer: BooleanConstructor;
    scrollable: {
        type: BooleanConstructor;
        default: boolean;
    };
    stickyHeader: {
        type: BooleanConstructor;
        default: boolean;
    };
    expandable: BooleanConstructor;
    virtualList: BooleanConstructor;
    virtualListOffsetTop: NumberConstructor;
    virtualListOffsetBottom: NumberConstructor;
    virtualListItemHeight: {
        type: NumberConstructor;
        default: number;
    };
    virtualListOverscan: {
        type: NumberConstructor;
        default: number;
    };
    keyProp: StringConstructor;
    selectable: BooleanConstructor;
    singleSelect: BooleanConstructor;
    autoClearSelected: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{
    "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
    "onClick-row"?: ((...args: any[]) => any) | undefined;
}>, "error" | "sort" | "items" | "loading" | "fixed" | "virtualList" | "virtualListItemHeight" | "virtualListOverscan" | "headers" | "loadingSkeleton" | "loadingLines" | "dense" | "striped" | "pointer" | "scrollable" | "stickyHeader" | "expandable" | "selectable" | "singleSelect" | "autoClearSelected"> & {
    selected?: string | number | (string | number)[] | undefined;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: Pick<{
    props: Partial<{
        error: boolean;
        sort: string[];
        items: T[];
        loading: boolean;
        fixed: boolean;
        virtualList: boolean;
        virtualListItemHeight: number;
        virtualListOverscan: number;
        headers: TableHeader[];
        loadingSkeleton: boolean;
        loadingLines: string | number;
        dense: boolean;
        striped: boolean;
        pointer: boolean;
        scrollable: boolean;
        stickyHeader: boolean;
        expandable: boolean;
        selectable: boolean;
        singleSelect: boolean;
        autoClearSelected: boolean;
    }> & Omit<{
        readonly error: boolean;
        readonly sort: string[];
        readonly items: T[];
        readonly loading: boolean;
        readonly fixed: boolean;
        readonly virtualList: boolean;
        readonly virtualListItemHeight: number;
        readonly virtualListOverscan: number;
        readonly headers: TableHeader[];
        readonly loadingSkeleton: boolean;
        readonly loadingLines: string | number;
        readonly dense: boolean;
        readonly striped: boolean;
        readonly pointer: boolean;
        readonly scrollable: boolean;
        readonly stickyHeader: boolean;
        readonly expandable: boolean;
        readonly selectable: boolean;
        readonly singleSelect: boolean;
        readonly autoClearSelected: boolean;
        readonly virtualListOffsetTop?: number | undefined;
        readonly virtualListOffsetBottom?: number | undefined;
        readonly keyProp?: string | undefined;
        readonly "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
        readonly "onClick-row"?: ((...args: any[]) => any) | undefined;
    } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
        items: {
            type: PropType<T[]>;
            default: () => never[];
        };
        headers: {
            type: PropType<TableHeader[]>;
            default: () => never[];
        };
        sort: {
            type: PropType<string[]>;
            default: () => never[];
        };
        loading: BooleanConstructor;
        loadingSkeleton: BooleanConstructor;
        loadingLines: {
            type: (StringConstructor | NumberConstructor)[];
            default: number;
        };
        error: BooleanConstructor;
        dense: BooleanConstructor;
        fixed: BooleanConstructor;
        striped: BooleanConstructor;
        pointer: BooleanConstructor;
        scrollable: {
            type: BooleanConstructor;
            default: boolean;
        };
        stickyHeader: {
            type: BooleanConstructor;
            default: boolean;
        };
        expandable: BooleanConstructor;
        virtualList: BooleanConstructor;
        virtualListOffsetTop: NumberConstructor;
        virtualListOffsetBottom: NumberConstructor;
        virtualListItemHeight: {
            type: NumberConstructor;
            default: number;
        };
        virtualListOverscan: {
            type: NumberConstructor;
            default: number;
        };
        keyProp: StringConstructor;
        selectable: BooleanConstructor;
        singleSelect: BooleanConstructor;
        autoClearSelected: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{
        "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
        "onClick-row"?: ((...args: any[]) => any) | undefined;
    }>, "error" | "sort" | "items" | "loading" | "fixed" | "virtualList" | "virtualListItemHeight" | "virtualListOverscan" | "headers" | "loadingSkeleton" | "loadingLines" | "dense" | "striped" | "pointer" | "scrollable" | "stickyHeader" | "expandable" | "selectable" | "singleSelect" | "autoClearSelected"> & {
        selected?: string | number | (string | number)[] | undefined;
    };
    expose(exposed: {}): void;
    attrs: any;
    slots: Partial<Record<string, (_: {
        header: TableHeader;
    }) => any>> & Partial<Record<string, (_: {
        item: number;
    }) => any>> & Partial<Record<string, (_: {
        item: T;
    }) => any>> & {
        title?(_: {}): any;
        actions?(_: {}): any;
        error?(_: {}): any;
        empty?(_: {}): any;
        "expanded-row"?(_: {
            item: T;
        }): any;
    };
    emit: (event: "update:sort" | "click-row", ...args: any[]) => void;
}, "emit" | "attrs" | "slots"> | undefined, __VLS_setup?: {
    props: Partial<{
        error: boolean;
        sort: string[];
        items: T[];
        loading: boolean;
        fixed: boolean;
        virtualList: boolean;
        virtualListItemHeight: number;
        virtualListOverscan: number;
        headers: TableHeader[];
        loadingSkeleton: boolean;
        loadingLines: string | number;
        dense: boolean;
        striped: boolean;
        pointer: boolean;
        scrollable: boolean;
        stickyHeader: boolean;
        expandable: boolean;
        selectable: boolean;
        singleSelect: boolean;
        autoClearSelected: boolean;
    }> & Omit<{
        readonly error: boolean;
        readonly sort: string[];
        readonly items: T[];
        readonly loading: boolean;
        readonly fixed: boolean;
        readonly virtualList: boolean;
        readonly virtualListItemHeight: number;
        readonly virtualListOverscan: number;
        readonly headers: TableHeader[];
        readonly loadingSkeleton: boolean;
        readonly loadingLines: string | number;
        readonly dense: boolean;
        readonly striped: boolean;
        readonly pointer: boolean;
        readonly scrollable: boolean;
        readonly stickyHeader: boolean;
        readonly expandable: boolean;
        readonly selectable: boolean;
        readonly singleSelect: boolean;
        readonly autoClearSelected: boolean;
        readonly virtualListOffsetTop?: number | undefined;
        readonly virtualListOffsetBottom?: number | undefined;
        readonly keyProp?: string | undefined;
        readonly "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
        readonly "onClick-row"?: ((...args: any[]) => any) | undefined;
    } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
        items: {
            type: PropType<T[]>;
            default: () => never[];
        };
        headers: {
            type: PropType<TableHeader[]>;
            default: () => never[];
        };
        sort: {
            type: PropType<string[]>;
            default: () => never[];
        };
        loading: BooleanConstructor;
        loadingSkeleton: BooleanConstructor;
        loadingLines: {
            type: (StringConstructor | NumberConstructor)[];
            default: number;
        };
        error: BooleanConstructor;
        dense: BooleanConstructor;
        fixed: BooleanConstructor;
        striped: BooleanConstructor;
        pointer: BooleanConstructor;
        scrollable: {
            type: BooleanConstructor;
            default: boolean;
        };
        stickyHeader: {
            type: BooleanConstructor;
            default: boolean;
        };
        expandable: BooleanConstructor;
        virtualList: BooleanConstructor;
        virtualListOffsetTop: NumberConstructor;
        virtualListOffsetBottom: NumberConstructor;
        virtualListItemHeight: {
            type: NumberConstructor;
            default: number;
        };
        virtualListOverscan: {
            type: NumberConstructor;
            default: number;
        };
        keyProp: StringConstructor;
        selectable: BooleanConstructor;
        singleSelect: BooleanConstructor;
        autoClearSelected: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{
        "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
        "onClick-row"?: ((...args: any[]) => any) | undefined;
    }>, "error" | "sort" | "items" | "loading" | "fixed" | "virtualList" | "virtualListItemHeight" | "virtualListOverscan" | "headers" | "loadingSkeleton" | "loadingLines" | "dense" | "striped" | "pointer" | "scrollable" | "stickyHeader" | "expandable" | "selectable" | "singleSelect" | "autoClearSelected"> & {
        selected?: string | number | (string | number)[] | undefined;
    };
    expose(exposed: {}): void;
    attrs: any;
    slots: Partial<Record<string, (_: {
        header: TableHeader;
    }) => any>> & Partial<Record<string, (_: {
        item: number;
    }) => any>> & Partial<Record<string, (_: {
        item: T;
    }) => any>> & {
        title?(_: {}): any;
        actions?(_: {}): any;
        error?(_: {}): any;
        empty?(_: {}): any;
        "expanded-row"?(_: {
            item: T;
        }): any;
    };
    emit: (event: "update:sort" | "click-row", ...args: any[]) => void;
}) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: {
        props: Partial<{
            error: boolean;
            sort: string[];
            items: T[];
            loading: boolean;
            fixed: boolean;
            virtualList: boolean;
            virtualListItemHeight: number;
            virtualListOverscan: number;
            headers: TableHeader[];
            loadingSkeleton: boolean;
            loadingLines: string | number;
            dense: boolean;
            striped: boolean;
            pointer: boolean;
            scrollable: boolean;
            stickyHeader: boolean;
            expandable: boolean;
            selectable: boolean;
            singleSelect: boolean;
            autoClearSelected: boolean;
        }> & Omit<{
            readonly error: boolean;
            readonly sort: string[];
            readonly items: T[];
            readonly loading: boolean;
            readonly fixed: boolean;
            readonly virtualList: boolean;
            readonly virtualListItemHeight: number;
            readonly virtualListOverscan: number;
            readonly headers: TableHeader[];
            readonly loadingSkeleton: boolean;
            readonly loadingLines: string | number;
            readonly dense: boolean;
            readonly striped: boolean;
            readonly pointer: boolean;
            readonly scrollable: boolean;
            readonly stickyHeader: boolean;
            readonly expandable: boolean;
            readonly selectable: boolean;
            readonly singleSelect: boolean;
            readonly autoClearSelected: boolean;
            readonly virtualListOffsetTop?: number | undefined;
            readonly virtualListOffsetBottom?: number | undefined;
            readonly keyProp?: string | undefined;
            readonly "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
            readonly "onClick-row"?: ((...args: any[]) => any) | undefined;
        } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
            items: {
                type: PropType<T[]>;
                default: () => never[];
            };
            headers: {
                type: PropType<TableHeader[]>;
                default: () => never[];
            };
            sort: {
                type: PropType<string[]>;
                default: () => never[];
            };
            loading: BooleanConstructor;
            loadingSkeleton: BooleanConstructor;
            loadingLines: {
                type: (StringConstructor | NumberConstructor)[];
                default: number;
            };
            error: BooleanConstructor;
            dense: BooleanConstructor;
            fixed: BooleanConstructor;
            striped: BooleanConstructor;
            pointer: BooleanConstructor;
            scrollable: {
                type: BooleanConstructor;
                default: boolean;
            };
            stickyHeader: {
                type: BooleanConstructor;
                default: boolean;
            };
            expandable: BooleanConstructor;
            virtualList: BooleanConstructor;
            virtualListOffsetTop: NumberConstructor;
            virtualListOffsetBottom: NumberConstructor;
            virtualListItemHeight: {
                type: NumberConstructor;
                default: number;
            };
            virtualListOverscan: {
                type: NumberConstructor;
                default: number;
            };
            keyProp: StringConstructor;
            selectable: BooleanConstructor;
            singleSelect: BooleanConstructor;
            autoClearSelected: {
                type: BooleanConstructor;
                default: boolean;
            };
        }>> & Readonly<{
            "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
            "onClick-row"?: ((...args: any[]) => any) | undefined;
        }>, "error" | "sort" | "items" | "loading" | "fixed" | "virtualList" | "virtualListItemHeight" | "virtualListOverscan" | "headers" | "loadingSkeleton" | "loadingLines" | "dense" | "striped" | "pointer" | "scrollable" | "stickyHeader" | "expandable" | "selectable" | "singleSelect" | "autoClearSelected"> & {
            selected?: string | number | (string | number)[] | undefined;
        };
        expose(exposed: {}): void;
        attrs: any;
        slots: Partial<Record<string, (_: {
            header: TableHeader;
        }) => any>> & Partial<Record<string, (_: {
            item: number;
        }) => any>> & Partial<Record<string, (_: {
            item: T;
        }) => any>> & {
            title?(_: {}): any;
            actions?(_: {}): any;
            error?(_: {}): any;
            empty?(_: {}): any;
            "expanded-row"?(_: {
                item: T;
            }): any;
        };
        emit: (event: "update:sort" | "click-row", ...args: any[]) => void;
    } | undefined;
};
export default _default;
