import { SvelteComponentTyped } from "svelte";

export type CarbonSearchMenuGroupContext = {
  /** Set to `true` to render a top divider, for example a footer actions group */
  divider: boolean;
  filter: any;
  registerItem: (id: any) => any;
  unregisterItem: (id: any) => any;
};

export type SearchMenuGroupProps = {
  /**
   * Specify the group label shown as a category header
   * @default ""
   */
  label?: string;

  /**
   * Override whether items in this group are filtered by the search value.
   * For example, set to `false` for a recent searches group.
   * @default undefined
   */
  filter?: boolean | undefined;

  /**
   * Set to `true` to render a top divider, for example a footer actions group
   * @default false
   */
  divider?: boolean;

  action?: (this: void) => void;

  children?: (this: void) => void;
};

export default class SearchMenuGroup extends SvelteComponentTyped<
  SearchMenuGroupProps,
  Record<string, any>,
  {
    default: Record<string, never>;
    action: Record<string, never>;
  }
> {}
