import type Accessor from "../../core/Accessor.js";

/** @since 5.1 */
export interface ColumnVisibilityMenuVisibleElementsProperties extends Partial<Pick<ColumnVisibilityMenuVisibleElements, "filter" | "header" | "toggleAll">> {}

/**
 * Controls the visibility of specific elements within the column visibility menu.
 *
 * @since 5.1
 */
export default class ColumnVisibilityMenuVisibleElements extends Accessor {
  constructor(properties?: ColumnVisibilityMenuVisibleElementsProperties);
  /**
   * Indicates whether to display the filter in the column visibility menu.
   *
   * @default true
   * @since 5.1
   */
  accessor filter: boolean;
  /**
   * Indicates whether to display the header of the column visibility menu.
   *
   * @default true
   * @since 5.1
   */
  accessor header: boolean;
  /**
   * Indicates whether to display the toggle to show or hide all columns.
   *
   * @default true
   * @since 5.1
   */
  accessor toggleAll: boolean;
}