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;
};
export type TableHeader = {
    sortable?: boolean;
    sort?: string[];
    align?: TableHeaderAlign;
    value?: string;
    text?: string;
    width?: string | number;
    truncate?: boolean;
    skeletonShape?: SkeletonShape;
};
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<{
    sort: string[];
    error: boolean;
    items: T[];
    loading: boolean;
    fixed: boolean;
    headers: TableHeader[];
    loadingSkeleton: boolean;
    loadingLines: string | number;
    dense: boolean;
    striped: boolean;
    pointer: boolean;
    scrollable: boolean;
    stickyHeader: boolean;
    expandable: boolean;
}> & Omit<{
    readonly sort: string[];
    readonly error: boolean;
    readonly items: T[];
    readonly loading: boolean;
    readonly fixed: boolean;
    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;
    "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
    "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;
}>> & {
    "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
    "onClick-row"?: ((...args: any[]) => any) | undefined;
}, "sort" | "error" | "items" | "loading" | "fixed" | "headers" | "loadingSkeleton" | "loadingLines" | "dense" | "striped" | "pointer" | "scrollable" | "stickyHeader" | "expandable"> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: Pick<{
    props: Partial<{
        sort: string[];
        error: boolean;
        items: T[];
        loading: boolean;
        fixed: boolean;
        headers: TableHeader[];
        loadingSkeleton: boolean;
        loadingLines: string | number;
        dense: boolean;
        striped: boolean;
        pointer: boolean;
        scrollable: boolean;
        stickyHeader: boolean;
        expandable: boolean;
    }> & Omit<{
        readonly sort: string[];
        readonly error: boolean;
        readonly items: T[];
        readonly loading: boolean;
        readonly fixed: boolean;
        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;
        "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
        "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;
    }>> & {
        "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
        "onClick-row"?: ((...args: any[]) => any) | undefined;
    }, "sort" | "error" | "items" | "loading" | "fixed" | "headers" | "loadingSkeleton" | "loadingLines" | "dense" | "striped" | "pointer" | "scrollable" | "stickyHeader" | "expandable">;
    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<{
        sort: string[];
        error: boolean;
        items: T[];
        loading: boolean;
        fixed: boolean;
        headers: TableHeader[];
        loadingSkeleton: boolean;
        loadingLines: string | number;
        dense: boolean;
        striped: boolean;
        pointer: boolean;
        scrollable: boolean;
        stickyHeader: boolean;
        expandable: boolean;
    }> & Omit<{
        readonly sort: string[];
        readonly error: boolean;
        readonly items: T[];
        readonly loading: boolean;
        readonly fixed: boolean;
        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;
        "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
        "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;
    }>> & {
        "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
        "onClick-row"?: ((...args: any[]) => any) | undefined;
    }, "sort" | "error" | "items" | "loading" | "fixed" | "headers" | "loadingSkeleton" | "loadingLines" | "dense" | "striped" | "pointer" | "scrollable" | "stickyHeader" | "expandable">;
    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<{
            sort: string[];
            error: boolean;
            items: T[];
            loading: boolean;
            fixed: boolean;
            headers: TableHeader[];
            loadingSkeleton: boolean;
            loadingLines: string | number;
            dense: boolean;
            striped: boolean;
            pointer: boolean;
            scrollable: boolean;
            stickyHeader: boolean;
            expandable: boolean;
        }> & Omit<{
            readonly sort: string[];
            readonly error: boolean;
            readonly items: T[];
            readonly loading: boolean;
            readonly fixed: boolean;
            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;
            "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
            "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;
        }>> & {
            "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
            "onClick-row"?: ((...args: any[]) => any) | undefined;
        }, "sort" | "error" | "items" | "loading" | "fixed" | "headers" | "loadingSkeleton" | "loadingLines" | "dense" | "striped" | "pointer" | "scrollable" | "stickyHeader" | "expandable">;
        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;
