import { BTableSortBy, TableField } from '../../types/TableTypes';
import { BTableProps } from '../../types/ComponentProps';
declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
        readonly onChange?: ((value: T[]) => any) | undefined;
        readonly "onHead-clicked"?: ((key: string, field: TableField<T>, event: MouseEvent, isFooter: boolean) => any) | undefined;
        readonly "onRow-clicked"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-dblclicked"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-contextmenu"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-hovered"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-unhovered"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-middle-clicked"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        readonly "onUpdate:sortBy"?: ((sortBy: BTableSortBy[] | undefined) => any) | undefined;
        readonly "onUpdate:busy"?: ((busy: boolean) => any) | undefined;
        readonly "onUpdate:selectedItems"?: ((selectedItems: readonly T[]) => any) | undefined;
        readonly onFiltered?: ((value: T[]) => any) | undefined;
        readonly "onRow-selected"?: ((value: T) => any) | undefined;
        readonly "onRow-unselected"?: ((value: T) => any) | undefined;
        readonly onSorted?: ((value: BTableSortBy) => any) | undefined;
    } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly<{}> & Readonly<{
        onChange?: ((value: T[]) => any) | undefined;
        "onHead-clicked"?: ((key: string, field: TableField<T>, event: MouseEvent, isFooter: boolean) => any) | undefined;
        "onRow-clicked"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        "onRow-dblclicked"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        "onRow-contextmenu"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        "onRow-hovered"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        "onRow-unhovered"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        "onRow-middle-clicked"?: ((item: T, index: number, event: MouseEvent) => any) | undefined;
        "onUpdate:sortBy"?: ((sortBy: BTableSortBy[] | undefined) => any) | undefined;
        "onUpdate:busy"?: ((busy: boolean) => any) | undefined;
        "onUpdate:selectedItems"?: ((selectedItems: readonly T[]) => any) | undefined;
        onFiltered?: ((value: T[]) => any) | undefined;
        "onRow-selected"?: ((value: T) => any) | undefined;
        "onRow-unselected"?: ((value: T) => any) | undefined;
        onSorted?: ((value: BTableSortBy) => any) | undefined;
    }>, never>, "onChange" | "onHead-clicked" | "onRow-clicked" | "onRow-dblclicked" | "onRow-contextmenu" | "onRow-hovered" | "onRow-unhovered" | "onRow-middle-clicked" | "onUpdate:sortBy" | "onUpdate:busy" | "onUpdate:selectedItems" | "onFiltered" | "onRow-selected" | "onRow-unselected" | "onSorted"> & ({
        sortBy?: BTableProps<T>["sortBy"];
        busy?: Exclude<BTableProps<T>["busy"], undefined>;
        selectedItems?: Exclude<BTableProps<T>["selectedItems"], undefined>;
    } & Omit<BTableProps<T>, "sortBy" | "busy" | "selectedItems">)> & import('vue').PublicProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{
        clearSelected: () => void;
        refresh: () => Promise<void>;
        selectAllRows: () => void;
        selectRow: (index: number) => void;
        unselectRow: (index: number) => void;
        isRowSelected: (index: number) => boolean;
    }>): void;
    attrs: any;
    slots: Partial<Record<NonNullable<string | number>, (_: {
        value: unknown;
        unformatted: unknown;
        index: number;
        item: T;
        field: TableField & {
            _noHeader?: true;
        };
        items: readonly T[];
        toggleDetails: () => void;
        detailsShowing: boolean;
    }) => any>> & Partial<Record<string, (_: {
        value: unknown;
        unformatted: unknown;
        index: number;
        item: T;
        field: TableField & {
            _noHeader?: true;
        };
        items: readonly T[];
        toggleDetails: () => void;
        detailsShowing: boolean;
    }) => any>> & Partial<Record<string, (_: {
        value: unknown;
        unformatted: unknown;
        index: number;
        item: T;
        field: TableField & {
            _noHeader?: true;
        };
        items: readonly T[];
        toggleDetails: () => void;
        detailsShowing: boolean;
    }) => any>> & Partial<Record<string, (_: {
        value: unknown;
        unformatted: unknown;
        index: number;
        item: T;
        field: TableField & {
            _noHeader?: true;
        };
        items: readonly T[];
        toggleDetails: () => void;
        detailsShowing: boolean;
    }) => any>> & Partial<Record<string, (_: {
        value: unknown;
        unformatted: unknown;
        index: number;
        item: T;
        field: TableField & {
            _noHeader?: true;
        };
        items: readonly T[];
        toggleDetails: () => void;
        detailsShowing: boolean;
    }) => any>> & {
        "table-busy"?(_: {}): any;
        "empty-filtered"?(_: {
            emptyFilteredText: string;
            emptyText: string;
            fields: TableField<T>[];
            items: T[];
        }): any;
        empty?(_: {
            emptyFilteredText: string;
            emptyText: string;
            fields: TableField<T>[];
            items: T[];
        }): any;
    };
    emit: (((evt: "change", value: T[]) => void) & ((evt: "head-clicked", key: string, field: TableField<T>, event: MouseEvent, isFooter: boolean) => void) & ((evt: "row-clicked", item: T, index: number, event: MouseEvent) => void) & ((evt: "row-dblclicked", item: T, index: number, event: MouseEvent) => void) & ((evt: "row-contextmenu", item: T, index: number, event: MouseEvent) => void) & ((evt: "row-hovered", item: T, index: number, event: MouseEvent) => void) & ((evt: "row-unhovered", item: T, index: number, event: MouseEvent) => void) & ((evt: "row-middle-clicked", item: T, index: number, event: MouseEvent) => void) & ((evt: "filtered", value: T[]) => void) & ((evt: "row-selected", value: T) => void) & ((evt: "row-unselected", value: T) => void) & ((evt: "sorted", value: BTableSortBy) => void)) & {
        'update:sortBy': [sortBy: BTableProps<T>["sortBy"]];
        'update:busy': [busy: Exclude<BTableProps<T>["busy"], undefined>];
        'update:selectedItems': [selectedItems: Exclude<BTableProps<T>["selectedItems"], undefined>];
    };
}>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
export default _default;
type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};
