import { BoxProps, CompoundStylesApiProps, Factory } from '@mantine/core';
import { ReactNode } from 'react';
export type TableColumnsSelectorStylesNames = 'columnSelector' | 'columnSelectorWrapper';
export interface TableColumnsSelectorProps extends BoxProps, CompoundStylesApiProps<TableColumnsSelectorFactory> {
    /**
     * The label of the button
     * @default 'Edit columns'
     */
    label?: ReactNode;
    /**
     * The style variant of the button
     * @default 'outline'
     */
    buttonVariant?: string;
    /**
     * Whether the count of visible columns is shown in the button label.
     * @default false
     */
    showVisibleCountLabel?: boolean;
    /**
     * The maximum number of columns that can be selected at the same time.
     * If defined a footer will render with the remaining number of columns that can be selected.
     */
    maxSelectableColumns?: number;
    /**
     * The content to display in the footer when maxSelectableColumns is defined.
     */
    footer?: ReactNode;
    /**
     * The tooltip to display when the user hovers over a disabled checkbox because of the limit.
     * @default 'You have reached the maximum display limit.'
     */
    limitReachedTooltip?: string;
    /**
     * The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.
     * @default 'This column is always visible.'
     */
    alwaysVisibleTooltip?: string;
}
export type TableColumnsSelectorFactory = Factory<{
    props: TableColumnsSelectorProps;
    ref: HTMLDivElement;
    stylesNames: TableColumnsSelectorStylesNames;
    compound: true;
}>;
export declare const TableColumnsSelector: import("@mantine/core").MantineComponent<{
    props: TableColumnsSelectorProps;
    ref: HTMLDivElement;
    stylesNames: TableColumnsSelectorStylesNames;
    compound: true;
}>;
//# sourceMappingURL=TableColumnsSelector.d.ts.map