import type { Booleanish, TableField, TableFieldObject, TableItem } from '../../types';
declare const _sfc_main: import("vue").DefineComponent<{
    align: {
        type: null;
        required: false;
    };
    caption: {
        type: StringConstructor;
        required: false;
    };
    captionTop: {
        type: null;
        required: false;
        default: boolean;
    };
    borderless: {
        type: null;
        required: false;
        default: boolean;
    };
    bordered: {
        type: null;
        required: false;
        default: boolean;
    };
    borderVariant: {
        type: null;
        required: false;
    };
    dark: {
        type: null;
        required: false;
        default: boolean;
    };
    fields: {
        type: ArrayConstructor;
        required: false;
        default: () => never[];
    };
    footClone: {
        type: null;
        required: false;
        default: boolean;
    };
    hover: {
        type: null;
        required: false;
        default: boolean;
    };
    items: {
        type: ArrayConstructor;
        required: false;
        default: () => never[];
    };
    provider: {
        type: null;
        required: false;
    };
    sortCompare: {
        type: null;
        required: false;
    };
    noProvider: {
        type: ArrayConstructor;
        required: false;
    };
    noProviderPaging: {
        type: null;
        required: false;
    };
    noProviderSorting: {
        type: null;
        required: false;
    };
    noProviderFiltering: {
        type: null;
        required: false;
    };
    responsive: {
        type: (StringConstructor | BooleanConstructor)[];
        required: false;
        default: boolean;
    };
    small: {
        type: null;
        required: false;
        default: boolean;
    };
    striped: {
        type: null;
        required: false;
        default: boolean;
    };
    stacked: {
        type: (StringConstructor | BooleanConstructor)[];
        required: false;
        default: boolean;
    };
    labelStacked: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
    variant: {
        type: null;
        required: false;
    };
    sortBy: {
        type: StringConstructor;
        required: false;
    };
    sortDesc: {
        type: null;
        required: false;
        default: boolean;
    };
    sortInternal: {
        type: null;
        required: false;
        default: boolean;
    };
    selectable: {
        type: null;
        required: false;
        default: boolean;
    };
    stickySelect: {
        type: null;
        required: false;
        default: boolean;
    };
    selectHead: {
        type: (StringConstructor | BooleanConstructor)[];
        required: false;
        default: boolean;
    };
    selectMode: {
        type: StringConstructor;
        required: false;
        default: string;
    };
    selectionVariant: {
        type: null;
        required: false;
        default: string;
    };
    stickyHeader: {
        type: null;
        required: false;
        default: boolean;
    };
    busy: {
        type: null;
        required: false;
        default: boolean;
    };
    showEmpty: {
        type: null;
        required: false;
        default: boolean;
    };
    perPage: {
        type: NumberConstructor;
        required: false;
    };
    currentPage: {
        type: NumberConstructor;
        required: false;
        default: number;
    };
    filter: {
        type: StringConstructor;
        required: false;
    };
    filterable: {
        type: ArrayConstructor;
        required: false;
    };
    emptyText: {
        type: StringConstructor;
        required: false;
        default: string;
    };
    emptyFilteredText: {
        type: StringConstructor;
        required: false;
        default: string;
    };
}, {
    props: any;
    emit: {
        (e: 'headClicked', key: import("../../types/LiteralUnion").default<string, string>, field: TableField<Record<string, unknown>>, event: MouseEvent, isFooter: boolean): void;
        (e: 'rowClicked', item: TableItem<Record<string, unknown>>, index: number, event: MouseEvent): void;
        (e: 'rowDblClicked', item: TableItem<Record<string, unknown>>, index: number, event: MouseEvent): void;
        (e: 'rowHovered', item: TableItem<Record<string, unknown>>, index: number, event: MouseEvent): void;
        (e: 'rowUnhovered', item: TableItem<Record<string, unknown>>, index: number, event: MouseEvent): void;
        (e: 'rowSelected', value: TableItem): void;
        (e: 'rowUnselected', value: TableItem): void;
        (e: 'selection', value: TableItem[]): void;
        (e: 'update:busy', value: boolean): void;
        (e: 'update:sortBy', value: string): void;
        (e: 'update:sortDesc', value: boolean): void;
        (e: 'sorted', sortBy: string, isDesc: boolean): void;
        (e: 'filtered', value: TableItem[]): void;
    };
    slots: Readonly<{
        [name: string]: import("vue").Slot | undefined;
    }>;
    itemHelper: {
        normaliseFields: (origFields: TableField<Record<string, unknown>>[], items: TableItem<Record<string, unknown>>[]) => TableFieldObject<Record<string, unknown>>[];
        mapItems: (fields: TableField<Record<string, unknown>>[], items: TableItem<Record<string, unknown>>[], props: any, flags: Record<string, import("vue").Ref<boolean>>) => TableItem<Record<string, unknown>>[];
        internalItems: import("vue").Ref<{
            [x: string]: unknown;
            _rowVariant?: keyof import("../../types").BaseColorVariant | undefined;
            _cellVariants?: Partial<Record<string, keyof import("../../types").BaseColorVariant>> | undefined;
            _showDetails?: boolean | undefined;
        }[]>;
        updateInternalItems: (items: TableItem<Record<string, any>>[]) => Promise<TableItem<Record<string, unknown>>[] | undefined>;
        filterEvent: import("vue").Ref<((items: TableItem<Record<string, unknown>>[]) => void) | undefined>;
        notifyFilteredItems: () => void;
        formatItem: (item: TableItem<Record<string, unknown>>, fields: TableFieldObject<Record<string, unknown>>) => unknown;
    };
    footCloneBoolean: Readonly<import("vue").Ref<boolean>>;
    sortDescBoolean: Readonly<import("vue").Ref<boolean>>;
    sortInternalBoolean: Readonly<import("vue").Ref<boolean>>;
    selectableBoolean: Readonly<import("vue").Ref<boolean>>;
    stickySelectBoolean: Readonly<import("vue").Ref<boolean>>;
    labelStackedBoolean: Readonly<import("vue").Ref<boolean>>;
    busyBoolean: Readonly<import("vue").Ref<boolean>>;
    showEmptyBoolean: Readonly<import("vue").Ref<boolean>>;
    noProviderPagingBoolean: Readonly<import("vue").Ref<boolean | undefined>>;
    noProviderSortingBoolean: Readonly<import("vue").Ref<boolean | undefined>>;
    noProviderFilteringBoolean: Readonly<import("vue").Ref<boolean | undefined>>;
    internalBusyFlag: import("vue").Ref<boolean>;
    selectedItems: import("vue").Ref<Set<TableItem<Record<string, unknown>>>>;
    isSelecting: import("vue").ComputedRef<boolean>;
    tableClasses: import("vue").ComputedRef<{
        [x: string]: boolean;
        'b-table-selectable': boolean;
        'b-table-selecting user-select-none': boolean;
        'b-table-busy': boolean;
        'b-table-sortable': boolean;
        'b-table-sort-desc': boolean;
        'b-table-sort-asc': boolean;
    }>;
    containerAttrs: import("vue").ComputedRef<{
        bordered: Booleanish;
        borderless: Booleanish;
        borderVariant: keyof import("../../types").BaseColorVariant | undefined;
        captionTop: Booleanish;
        dark: Booleanish;
        hover: Booleanish;
        responsive: boolean | "sm" | "md" | "lg" | "xl" | "xxl";
        striped: Booleanish;
        stacked: boolean | "sm" | "md" | "lg" | "xl" | "xxl";
        small: Booleanish;
        tableClass: {
            [x: string]: boolean;
            'b-table-selectable': boolean;
            'b-table-selecting user-select-none': boolean;
            'b-table-busy': boolean;
            'b-table-sortable': boolean;
            'b-table-sort-desc': boolean;
            'b-table-sort-asc': boolean;
        };
        tableVariant: keyof import("../../types").BaseColorVariant | undefined;
        stickyHeader: Booleanish;
    }>;
    computedFields: import("vue").ComputedRef<TableFieldObject<Record<string, unknown>>[]>;
    computedFieldsTotal: import("vue").ComputedRef<number>;
    isFilterableTable: import("vue").ComputedRef<boolean>;
    usesProvider: import("vue").ComputedRef<boolean>;
    addSelectableCell: import("vue").ComputedRef<boolean>;
    isSortable: import("vue").ComputedRef<boolean>;
    requireItemsMapping: import("vue").ComputedRef<boolean>;
    computedItems: import("vue").ComputedRef<TableItem<Record<string, unknown>>[]>;
    getFieldHeadLabel: (field: TableField) => string;
    headerClicked: (field: TableField, event: MouseEvent, isFooter?: boolean) => void;
    onRowClick: (row: TableItem, index: number, e: MouseEvent) => void;
    onRowDblClick: (row: TableItem, index: number, e: MouseEvent) => void;
    onRowMouseEnter: (row: TableItem, index: number, e: MouseEvent) => void;
    onRowMouseLeave: (row: TableItem, index: number, e: MouseEvent) => void;
    handleFieldSorting: (field: TableField) => void;
    notifySelectionEvent: () => void;
    handleRowSelection: (row: TableItem, index: number, shiftClicked?: boolean) => void;
    callItemsProvider: () => Promise<TableItem<Record<string, unknown>>[] | undefined>;
    toggleRowDetails: (tr: TableItem) => void;
    getFieldColumnClasses: (field: TableFieldObject) => (string | string[] | {
        'b-table-sortable-column': boolean | undefined;
        'b-table-sticky-column': boolean | undefined;
    } | undefined)[];
    getFieldRowClasses: (field: TableFieldObject, tr: TableItem) => (string | string[] | {
        'b-table-sticky-column': boolean | undefined;
    } | undefined)[];
    getRowClasses: (item: TableItem) => (string | null)[];
    selectAllRows: () => void;
    clearSelected: () => void;
    selectRow: (index: number) => void;
    unselectRow: (index: number) => void;
    providerPropsWatch: (prop: string, val: any, oldVal: any) => Promise<void>;
    BSpinner: import("vue").DefineComponent<{
        label: {
            type: StringConstructor;
            required: false;
        };
        role: {
            type: StringConstructor;
            required: false;
            default: string;
        };
        small: {
            type: null;
            required: false;
            default: boolean;
        };
        tag: {
            type: StringConstructor;
            required: false;
            default: string;
        };
        type: {
            type: null;
            required: false;
            default: string;
        };
        variant: {
            type: null;
            required: false;
        };
    }, {
        props: any;
        slots: Readonly<{
            [name: string]: import("vue").Slot | undefined;
        }>;
        smallBoolean: Readonly<import("vue").Ref<boolean>>;
        computedClasses: import("vue").ComputedRef<{
            [x: string]: boolean;
            'spinner-border': boolean;
            'spinner-border-sm': boolean;
            'spinner-grow': boolean;
            'spinner-grow-sm': boolean;
        }>;
        hasLabelSlot: import("vue").ComputedRef<boolean>;
    }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
        label: {
            type: StringConstructor;
            required: false;
        };
        role: {
            type: StringConstructor;
            required: false;
            default: string;
        };
        small: {
            type: null;
            required: false;
            default: boolean;
        };
        tag: {
            type: StringConstructor;
            required: false;
            default: string;
        };
        type: {
            type: null;
            required: false;
            default: string;
        };
        variant: {
            type: null;
            required: false;
        };
    }>>, {
        type: any;
        tag: string;
        small: any;
        role: string;
    }>;
    BTableSimple: import("vue").DefineComponent<{
        bordered: {
            type: null;
            required: false;
            default: boolean;
        };
        borderless: {
            type: null;
            required: false;
            default: boolean;
        };
        borderVariant: {
            type: null;
            required: false;
        };
        captionTop: {
            type: null;
            required: false;
            default: boolean;
        };
        dark: {
            type: null;
            required: false;
            default: boolean;
        };
        hover: {
            type: null;
            required: false;
            default: boolean;
        };
        responsive: {
            type: (StringConstructor | BooleanConstructor)[];
            required: false;
            default: boolean;
        };
        stacked: {
            type: (StringConstructor | BooleanConstructor)[];
            required: false;
            default: boolean;
        };
        striped: {
            type: null;
            required: false;
            default: boolean;
        };
        small: {
            type: null;
            required: false;
            default: boolean;
        };
        tableClass: {
            type: null;
            required: false;
        };
        tableVariant: {
            type: null;
            required: false;
        };
        stickyHeader: {
            type: null;
            required: false;
            default: boolean;
        };
    }, {
        props: any;
        captionTopBoolean: Readonly<import("vue").Ref<boolean>>;
        borderlessBoolean: Readonly<import("vue").Ref<boolean>>;
        borderedBoolean: Readonly<import("vue").Ref<boolean>>;
        darkBoolean: Readonly<import("vue").Ref<boolean>>;
        hoverBoolean: Readonly<import("vue").Ref<boolean>>;
        smallBoolean: Readonly<import("vue").Ref<boolean>>;
        stripedBoolean: Readonly<import("vue").Ref<boolean>>;
        stickyHeaderBoolean: Readonly<import("vue").Ref<boolean>>;
        computedClasses: import("vue").ComputedRef<(import("../../types/ClassValue").default | undefined)[]>;
        responsiveClasses: import("vue").ComputedRef<{
            [x: string]: boolean;
            'table-responsive': boolean;
            'b-table-sticky-header': boolean;
        }[]>;
    }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
        bordered: {
            type: null;
            required: false;
            default: boolean;
        };
        borderless: {
            type: null;
            required: false;
            default: boolean;
        };
        borderVariant: {
            type: null;
            required: false;
        };
        captionTop: {
            type: null;
            required: false;
            default: boolean;
        };
        dark: {
            type: null;
            required: false;
            default: boolean;
        };
        hover: {
            type: null;
            required: false;
            default: boolean;
        };
        responsive: {
            type: (StringConstructor | BooleanConstructor)[];
            required: false;
            default: boolean;
        };
        stacked: {
            type: (StringConstructor | BooleanConstructor)[];
            required: false;
            default: boolean;
        };
        striped: {
            type: null;
            required: false;
            default: boolean;
        };
        small: {
            type: null;
            required: false;
            default: boolean;
        };
        tableClass: {
            type: null;
            required: false;
        };
        tableVariant: {
            type: null;
            required: false;
        };
        stickyHeader: {
            type: null;
            required: false;
            default: boolean;
        };
    }>>, {
        dark: any;
        small: any;
        stacked: string | boolean;
        bordered: any;
        borderless: any;
        captionTop: any;
        hover: any;
        responsive: string | boolean;
        striped: any;
        stickyHeader: any;
    }>;
    readonly filterEvent: (event: Event) => any;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("headClicked" | "rowClicked" | "rowDblClicked" | "rowHovered" | "rowUnhovered" | "rowSelected" | "rowUnselected" | "selection" | "update:busy" | "update:sortBy" | "update:sortDesc" | "sorted" | "filtered")[], "headClicked" | "rowClicked" | "rowDblClicked" | "rowHovered" | "rowUnhovered" | "rowSelected" | "rowUnselected" | "selection" | "update:busy" | "update:sortBy" | "update:sortDesc" | "sorted" | "filtered", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    align: {
        type: null;
        required: false;
    };
    caption: {
        type: StringConstructor;
        required: false;
    };
    captionTop: {
        type: null;
        required: false;
        default: boolean;
    };
    borderless: {
        type: null;
        required: false;
        default: boolean;
    };
    bordered: {
        type: null;
        required: false;
        default: boolean;
    };
    borderVariant: {
        type: null;
        required: false;
    };
    dark: {
        type: null;
        required: false;
        default: boolean;
    };
    fields: {
        type: ArrayConstructor;
        required: false;
        default: () => never[];
    };
    footClone: {
        type: null;
        required: false;
        default: boolean;
    };
    hover: {
        type: null;
        required: false;
        default: boolean;
    };
    items: {
        type: ArrayConstructor;
        required: false;
        default: () => never[];
    };
    provider: {
        type: null;
        required: false;
    };
    sortCompare: {
        type: null;
        required: false;
    };
    noProvider: {
        type: ArrayConstructor;
        required: false;
    };
    noProviderPaging: {
        type: null;
        required: false;
    };
    noProviderSorting: {
        type: null;
        required: false;
    };
    noProviderFiltering: {
        type: null;
        required: false;
    };
    responsive: {
        type: (StringConstructor | BooleanConstructor)[];
        required: false;
        default: boolean;
    };
    small: {
        type: null;
        required: false;
        default: boolean;
    };
    striped: {
        type: null;
        required: false;
        default: boolean;
    };
    stacked: {
        type: (StringConstructor | BooleanConstructor)[];
        required: false;
        default: boolean;
    };
    labelStacked: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
    variant: {
        type: null;
        required: false;
    };
    sortBy: {
        type: StringConstructor;
        required: false;
    };
    sortDesc: {
        type: null;
        required: false;
        default: boolean;
    };
    sortInternal: {
        type: null;
        required: false;
        default: boolean;
    };
    selectable: {
        type: null;
        required: false;
        default: boolean;
    };
    stickySelect: {
        type: null;
        required: false;
        default: boolean;
    };
    selectHead: {
        type: (StringConstructor | BooleanConstructor)[];
        required: false;
        default: boolean;
    };
    selectMode: {
        type: StringConstructor;
        required: false;
        default: string;
    };
    selectionVariant: {
        type: null;
        required: false;
        default: string;
    };
    stickyHeader: {
        type: null;
        required: false;
        default: boolean;
    };
    busy: {
        type: null;
        required: false;
        default: boolean;
    };
    showEmpty: {
        type: null;
        required: false;
        default: boolean;
    };
    perPage: {
        type: NumberConstructor;
        required: false;
    };
    currentPage: {
        type: NumberConstructor;
        required: false;
        default: number;
    };
    filter: {
        type: StringConstructor;
        required: false;
    };
    filterable: {
        type: ArrayConstructor;
        required: false;
    };
    emptyText: {
        type: StringConstructor;
        required: false;
        default: string;
    };
    emptyFilteredText: {
        type: StringConstructor;
        required: false;
        default: string;
    };
}>> & {
    onHeadClicked?: ((...args: any[]) => any) | undefined;
    onRowClicked?: ((...args: any[]) => any) | undefined;
    onRowDblClicked?: ((...args: any[]) => any) | undefined;
    onRowHovered?: ((...args: any[]) => any) | undefined;
    onRowUnhovered?: ((...args: any[]) => any) | undefined;
    onRowSelected?: ((...args: any[]) => any) | undefined;
    onRowUnselected?: ((...args: any[]) => any) | undefined;
    onSelection?: ((...args: any[]) => any) | undefined;
    "onUpdate:busy"?: ((...args: any[]) => any) | undefined;
    "onUpdate:sortBy"?: ((...args: any[]) => any) | undefined;
    "onUpdate:sortDesc"?: ((...args: any[]) => any) | undefined;
    onSorted?: ((...args: any[]) => any) | undefined;
    onFiltered?: ((...args: any[]) => any) | undefined;
}, {
    dark: any;
    small: any;
    items: unknown[];
    stacked: string | boolean;
    busy: any;
    bordered: any;
    borderless: any;
    captionTop: any;
    hover: any;
    responsive: string | boolean;
    striped: any;
    stickyHeader: any;
    fields: unknown[];
    footClone: any;
    labelStacked: boolean;
    sortDesc: any;
    sortInternal: any;
    selectable: any;
    stickySelect: any;
    selectHead: string | boolean;
    selectMode: string;
    selectionVariant: any;
    showEmpty: any;
    currentPage: number;
    emptyText: string;
    emptyFilteredText: string;
}>;
export default _sfc_main;
