import { BTableSortBy, TableField } from '../../types/TableTypes';
import { BTableProps } from '../../types/ComponentProps';
import { LiteralUnion } from '../../types/LiteralUnion';
declare const _default: <Items>(__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: Items[]) => any) | undefined;
        readonly "onHead-clicked"?: ((key: string, field: TableField<Items>, event: MouseEvent, isFooter: boolean) => any) | undefined;
        readonly "onRow-clicked"?: ((item: Items, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-dblclicked"?: ((item: Items, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-contextmenu"?: ((item: Items, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-hovered"?: ((item: Items, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-unhovered"?: ((item: Items, index: number, event: MouseEvent) => any) | undefined;
        readonly "onRow-middle-clicked"?: ((item: Items, 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 Items[]) => any) | undefined;
        readonly onFiltered?: ((value: Items[]) => any) | undefined;
        readonly "onRow-selected"?: ((value: Items) => any) | undefined;
        readonly "onRow-unselected"?: ((value: Items) => any) | undefined;
        readonly onSorted?: ((value: BTableSortBy) => any) | undefined;
    } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, 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<Items>["sortBy"];
        busy?: Exclude<BTableProps<Items>["busy"], undefined>;
        selectedItems?: Exclude<BTableProps<Items>["selectedItems"], undefined>;
    } & Omit<BTableProps<Items>, "sortBy" | "busy" | "selectedItems">)> & import('vue').PublicProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{
        refresh: () => Promise<void>;
        clearSelected: () => void;
        selectAllRows: () => void;
        selectRow: (index: number) => void;
        unselectRow: (index: number) => void;
        isRowSelected: (index: number) => boolean;
    }>): void;
    attrs: any;
    slots: Readonly<{
        [key: `head(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: false;
            selectAllRows: () => void;
            clearSelected: () => void;
        }) => any;
        [key: `cell(${string})`]: (props: {
            value: unknown;
            unformatted: unknown;
            index: number;
            item: Items;
            field: TableField<Items>;
            items: readonly Items[];
            toggleDetails: () => void;
            detailsShowing: boolean;
            rowSelected: boolean;
            selectRow: (index?: number) => void;
            unselectRow: (index?: number) => void;
        }) => any;
        [key: `foot(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: true;
            selectAllRows: () => void;
            clearSelected: () => void;
        }) => any;
        [key: `sortAsc(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: false;
        }) => any;
        [key: `sortDesc(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: false;
        }) => any;
        [key: `sortDefault(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: false;
        }) => any;
        'thead-top'?: (props: {
            columns: number;
            fields: TableField<Items>[];
            selectAllRows: () => void;
            clearSelected: () => void;
        }) => any;
        'thead-sub'?: (props: {
            items: readonly Items[];
            fields: TableField<Items>[];
            field: TableField<Items>;
        }) => any;
        'top-row'?: (props: {
            columns: number;
            fields: TableField<Items>[];
        }) => any;
        'row-details'?: (props: {
            item: Items;
            toggleDetails: () => void;
            fields: TableField<Items>[];
            index: number;
            rowSelected: boolean;
            selectRow: (index?: number) => void;
            unselectRow: (index?: number) => void;
        }) => any;
        'bottom-row'?: (props: {
            columns: number;
            fields: TableField<Items>[];
        }) => any;
        'custom-foot'?: (props: {
            fields: TableField<Items>[];
            items: readonly Items[];
            columns: number;
        }) => any;
        'table-caption'?: (props: Record<string, never>) => any;
        'table-busy'?: (props: Record<string, never>) => any;
        'empty-filtered'?: (props: {
            emptyFilteredText: string;
            emptyText: string;
            fields: TableField<Items>[];
            items: Items[];
        }) => any;
        empty?: (props: {
            emptyFilteredText: string;
            emptyText: string;
            fields: TableField<Items>[];
            items: Items[];
        }) => any;
    }> & {
        [key: `head(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: false;
            selectAllRows: () => void;
            clearSelected: () => void;
        }) => any;
        [key: `cell(${string})`]: (props: {
            value: unknown;
            unformatted: unknown;
            index: number;
            item: Items;
            field: TableField<Items>;
            items: readonly Items[];
            toggleDetails: () => void;
            detailsShowing: boolean;
            rowSelected: boolean;
            selectRow: (index?: number) => void;
            unselectRow: (index?: number) => void;
        }) => any;
        [key: `foot(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: true;
            selectAllRows: () => void;
            clearSelected: () => void;
        }) => any;
        [key: `sortAsc(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: false;
        }) => any;
        [key: `sortDesc(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: false;
        }) => any;
        [key: `sortDefault(${string})`]: (props: {
            label: string | undefined;
            column: LiteralUnion<keyof Items>;
            field: TableField<Items>;
            isFoot: false;
        }) => any;
        'thead-top'?: (props: {
            columns: number;
            fields: TableField<Items>[];
            selectAllRows: () => void;
            clearSelected: () => void;
        }) => any;
        'thead-sub'?: (props: {
            items: readonly Items[];
            fields: TableField<Items>[];
            field: TableField<Items>;
        }) => any;
        'top-row'?: (props: {
            columns: number;
            fields: TableField<Items>[];
        }) => any;
        'row-details'?: (props: {
            item: Items;
            toggleDetails: () => void;
            fields: TableField<Items>[];
            index: number;
            rowSelected: boolean;
            selectRow: (index?: number) => void;
            unselectRow: (index?: number) => void;
        }) => any;
        'bottom-row'?: (props: {
            columns: number;
            fields: TableField<Items>[];
        }) => any;
        'custom-foot'?: (props: {
            fields: TableField<Items>[];
            items: readonly Items[];
            columns: number;
        }) => any;
        'table-caption'?: (props: Record<string, never>) => any;
        'table-busy'?: (props: Record<string, never>) => any;
        'empty-filtered'?: (props: {
            emptyFilteredText: string;
            emptyText: string;
            fields: TableField<Items>[];
            items: Items[];
        }) => any;
        empty?: (props: {
            emptyFilteredText: string;
            emptyText: string;
            fields: TableField<Items>[];
            items: Items[];
        }) => any;
    };
    emit: (((evt: "change", value: Items[]) => void) & ((evt: "head-clicked", key: string, field: TableField<Items>, event: MouseEvent, isFooter: boolean) => void) & ((evt: "row-clicked", item: Items, index: number, event: MouseEvent) => void) & ((evt: "row-dblclicked", item: Items, index: number, event: MouseEvent) => void) & ((evt: "row-contextmenu", item: Items, index: number, event: MouseEvent) => void) & ((evt: "row-hovered", item: Items, index: number, event: MouseEvent) => void) & ((evt: "row-unhovered", item: Items, index: number, event: MouseEvent) => void) & ((evt: "row-middle-clicked", item: Items, index: number, event: MouseEvent) => void) & ((evt: "filtered", value: Items[]) => void) & ((evt: "row-selected", value: Items) => void) & ((evt: "row-unselected", value: Items) => void) & ((evt: "sorted", value: BTableSortBy) => void)) & {
        'update:sortBy': [sortBy: BTableProps<Items>["sortBy"]];
        'update:busy': [busy: Exclude<BTableProps<Items>["busy"], undefined>];
        'update:selectedItems': [selectedItems: Exclude<BTableProps<Items>["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];
} & {};
