<commit_before>declare namespace ssf {
  class NotificationOptions {
    /**
     * The text to display underneath the title text.
     */
    body?: string;
    /**
     * The URL of an icon to be displayed in the notification.
     */
    icon?: string;
    /**
     *  The URL of an image to be displayed in the notification.
     */
    image?: string;
  }
  type NotificationPermission = 'default' | 'denied' | 'granted';

  interface NotificationEvent {
    /** Fires when the notification is clicked */
    click: 'click';
  }

  class Notification extends ssf.EventEmitter {
    /**
     * Create a notification
     * @param title - The title text of the notification.
     * @param options - The notification options.
     */
    constructor(title: string, options: NotificationOptions);

    static requestPermission(): Promise<NotificationPermission>;
  }
}<commit_msg>Better docs for Notification interface (#249)<commit_after>declare namespace ssf {

  /**
   * Options that can be passed to the notification constructor
   */
  class NotificationOptions {
    /**
     * The text to display underneath the title text.
     */
    body?: string;
    /**
     * The URL of an icon to be displayed in the notification.
     */
    icon?: string;
    /**
     *  The URL of an image to be displayed in the notification.
     */
    image?: string;
  }
  type NotificationPermission = 'default' | 'denied' | 'granted';

  interface NotificationEvent {
    /** Fires when the notification is clicked */
    click: 'click';
  }

  /**
   * Creates a new Desktop Notification.
   *
   * Notifications are created via a constructor which takes a title and
   * an options object with body text and additional view options
   * A Notification emits click events when the user clicks on it
   *
   * <pre>
   * Notification.requestPermission().then(result => {
   *   if (result === 'granted') {
   *     const notification = new Notification('My Title', { body: 'My body text' });
   *
   *     notification.on('click', () => {
   *       // Respond to click event
   *       console.log('Notification was clicked');
   *     });
   *   }
   * })
   * </pre>
   */
  class Notification extends ssf.EventEmitter {
    /**
     * Create a notification
     * @param title - The title text of the notification.
     * @param options - The notification options.
     */
    constructor(title: string, options: NotificationOptions);

    /**
     * Request permission to create notifications
     *
     * If required, ask the user for permission to create desktop notifications.
     * Some containers don't require permission so will resolve the promise
     * immediately with the result "granted"
     *
     * @returns A promise which resolves to a string value "granted" or "denied".
     */
    static requestPermission(): Promise<NotificationPermission>;
  }
}
{'fraction_non_alphanumeric': 0.1000697350069735, 'fraction_numerical': 0.0010460251046025104, 'mean_word_length': 2.5773067331670823, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3221653', 'n_tokens_mistral': 768, 'n_tokens_neox': 732, 'n_words': 283}