import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { DefineComponent } from 'vue';
import { ExtractPropTypes } from 'vue';
import { PropType } from 'vue';
import { PublicProps } from 'vue';

declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;

declare type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_TypePropsToRuntimeProps<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: PropType<__VLS_NonUndefinedable<T[K]>>;
    } : {
        type: PropType<T[K]>;
        required: true;
    };
};

declare type __VLS_WithDefaults<P, D> = {
    [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
        default: D[K];
    }> : P[K];
};

declare type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};

export declare interface DataViewToolbarProps {
    /**
     * When DataView has `variant="table"` and Table has `is-selectable` enabled, it provides a way to flag
     * a checkbox whenever all rows are selected, just like the standalone version on TableHeaderRow.
     */
    allRowsSelected?: boolean;
    /**
     * Hides the page statistics (ex: "1 - 12 of 20") in the toolbar
     */
    hidePageStats?: boolean;
    /**
     * Controls the corners of DataViewToolbar with the "border-radius" CSS property. The default value is "rounded".
     */
    radius?: ToolbarRadiuses;
    /**
     * When DataView has variant="table" and Table has `is-selectable` enabled, it provides a way to flag
     * a checkbox whenever one or more, but not all rows are selected, just like the standalone
     * version on TableHeaderRow.
     */
    someRowsSelected?: boolean;
    /**
     * The number of selected items. Used to display selected items count in the toolbar.
     */
    selectedItemsCount?: number;
    /**
     * When DataView has tabs above it, we need to remove the top left rounded corner
     */
    hasTabsAbove?: boolean;
}

declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<DataViewToolbarProps>, {
allRowsSelected: boolean;
hidePageStats: boolean;
radius: undefined;
someRowsSelected: boolean;
selectedItemsCount: undefined;
hasTabsAbove: boolean;
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
select: () => void;
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<DataViewToolbarProps>, {
allRowsSelected: boolean;
hidePageStats: boolean;
radius: undefined;
someRowsSelected: boolean;
selectedItemsCount: undefined;
hasTabsAbove: boolean;
}>>> & Readonly<{
onSelect?: (() => any) | undefined;
}>, {
radius: "none" | "rounded" | "rounded-top" | "rounded-top-right";
allRowsSelected: boolean;
hidePageStats: boolean;
someRowsSelected: boolean;
selectedItemsCount: number;
hasTabsAbove: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
    default?(_: {}): any;
    "more-actions"?(_: {}): any;
    "selected-stats"?(_: {}): any;
    "page-stats"?(_: {}): any;
}>;
export default _default;

declare enum ToolbarRadius {
    None = "none",
    Rounded = "rounded",
    RoundedTop = "rounded-top",
    RoundedTopRight = "rounded-top-right"
}

declare type ToolbarRadiuses = `${ToolbarRadius}`;

export { }
